Mysql select in 按id排序實現方法_MySQL教程

      編輯Tag賺U幣

      推薦: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教程/更新時間:2013-04-22
      相關MySQL教程