Mysql select in 按id排序實現方法_MySQL教程
推薦:mysql 超大數據/表管理技巧在實際應用中經過存儲、優化可以做到在超過9千萬數據中的查詢響應速度控制在1到20毫秒?瓷先ナ莻不錯的成績,不過優化這條路沒有終點,當我們的系統有超過幾百人、上千人同時使用時,仍然會顯的力不從心
表結構如下:mysql> select * from test;
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 2 | test2 |
| 3 | test3 |
| 4 | test4 |
| 5 | test5 |
+----+-------+
執行以下SQL:
mysql> select * from test where id in(3,1,5);
+----+-------+
| id | name |
+----+-------+
| 1 | test1 |
| 3 | test3 |
| 5 | test5 |
+----+-------+
3 rows in set (0.00 sec)
這個select在mysql中得結果會自動按照id升序排列,
但是我想執行"select * from test where id in(3,1,5);"的結果按照in中得條件排序,即:3,1,5,
想得到的結果如下:
id name
3 test3
1 test1
5 test5
請問在這樣的SQL在Mysql中怎么寫?
網上查到sqlserver中可以用order by charindex解決,但是沒看到Mysql怎么解決??請高手幫忙,謝
謝!
select * from a order by substring_index('3,1,2',id,1);
試下這個good,ls正解。
order by find_in_set(id,'3,1,5')
謝謝,經測試order by substring_index和order by find_in_set都可以
分享:mysql占用CPU過高的解決辦法(添加索引)下面是MYSQL占用CPU高處理的一個例子,希望對遇到類似問題的朋友們有點啟發。一般來說MYQL占用CPU高,多半是數據庫查詢代碼問題,查詢數據庫過多。所以一方面要精簡代碼,另一方面最好對頻繁使用的代碼設置索引
相關MySQL教程:
- MSSQL清空日志刪除日志文件
- 關于數據庫中保留小數位的問題
- 解析mysql與Oracle update的區別
- mysql 導入導出數據庫以及函數、存儲過程的介紹
- MySQL——修改root密碼的4種方法(以windows為例)
- 解決MYSQL出現Can''t create/write to file ''#sql_5c0_0.MYD''的問題
- 深入理解SQL的四種連接-左外連接、右外連接、內連接、全連接
- 解析:內聯,左外聯,右外聯,全連接,交叉連接的區別
- mysql出現“Incorrect key file for table”處理方法
- mysql重裝后出現亂碼設置為utf8可解決
- 淺析一個MYSQL語法(在查詢中使用count)的兼容性問題
- 解析MySQL中INSERT INTO SELECT的使用
- 相關鏈接:
- 教程說明:
MySQL教程-Mysql select in 按id排序實現方法。