成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL查詢結果按某值排序

數據庫 MySQL
使用MySQL很多時候我們不僅只是查詢出結果,還需要對查詢結構進行排序,下文對查詢結果按某值排序的方法作了詳細的介紹,供您參考。

MySQL查詢結果如何排序呢?這是很多人都提過的問題,下面就教您如何對MySQL查詢結果按某值排序,如果您感興趣的話,不妨一看。

之前有一個功能修改,要求MySQL查詢結果中:

id name * * *

1 lucy ...

3 lucy ...

2 lily ...

4 lucy ...

名字為lucy的優先排在前面,百思不得其解,可能有人會說簡單 union嘛 或者弄個臨時表什么的,其實我也想過,但是本身SQL邏輯就很多了(上面只是簡例),再union的話或者臨時表可能繞很大的彎路,后來看到一篇文章嘗試著加入order by find_in_set(name,'lucy') ,結果 得到的結果為lucy全部在下面,隨即我改為order by find_in_set(name,'lucy') desc 實現結果為

id name * * *

1 lucy ...

3 lucy ...

4 lucy ...

2 lily ...

基本實現,可是又有點不確定的心情,查mysql文檔發現find_in_set語法

  1. FIND_IN_SET(str,strlist)   
  2.  

假如字符串str 在由N 子鏈組成的字符串列數據表strlist 中, 則返回值的范圍在 1 到 N 之間 。一個字符串列數據表就是一個由一些被『,』符號分開的自鏈組成的字符串。如果***個參數是一個常數字符串,而第二個是type SET列,則   FIND_IN_SET() 函數被優化,使用比特計算。如果str不在strlist 或strlist 為空字符串,則返回值為 0 。如任意一個參數為NULL,則返回值為 NULL。 這個函數在***個參數包含一個逗號(『,』)時將無法正常運行

  1. mysql> SELECT FIND_IN_SET('b','a,b,c,d');  
  2.  
  3.         -> 2  
  4.  

看了這個我估計結果為什么要加desc 了 find_in_set返回的值是,當存在lucy的時候 返回他的位置,沒有的時候為0,空的時候null,所以排序為1,1,1,0,如果加在列上就為

id name FIND_IN_SET * *

1 lucy 1 ...

3 lucy 1 ...

2 lily 0 ...

4 lucy 1...

表結構如下:

  1. mysql> select * from test;  
  2. +----+-------+  
  3. | id | name   |  
  4. +----+-------+  
  5. |   1 | test1 |  
  6. |   2 | test2 |  
  7. |   3 | test3 |  
  8. |   4 | test4 |  
  9. |   5 | test5 |  
  10. +----+-------+  

執行以下SQL:

  1. mysql> select * from test where id in(3,1,5);  
  2. +----+-------+  
  3. | id | name   |  
  4. +----+-------+  
  5. |   1 | test1 |  
  6. |   3 | test3 |  
  7. |   5 | test5 |  
  8. +----+-------+  
  9. 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

方法如下:

  1. select * from test where id in(3,1,5) order by find_in_set(id,'3,1,5');  
  2. select * from test where id in(3,1,5) order by substring_index('3,1,2',id,1);  

兩者均可

 

 

 

【編輯推薦】

使用函數實現MySQL查詢行號

MySQL查詢中的非空問題

MySQL日期函數和時間函數

兩種常用MySql查詢時間段的方法

深度解析MySQL查詢緩存機制

責任編輯:段燃 來源: 互聯網
相關推薦

2010-07-16 09:00:08

SQL Server查

2010-11-25 14:45:19

MySQL查詢結果

2015-09-08 10:16:41

Java參數按值傳遞

2010-11-25 15:30:15

MySQL查詢結果

2010-11-25 15:36:09

MySQL查詢結果集

2009-09-14 10:09:26

LINQ查詢結果

2011-04-06 10:53:36

MySQL

2021-09-02 22:52:16

ValueDictionary排序

2009-06-18 13:58:06

Hibernate多表Hibernate

2010-10-15 11:05:31

MYSQL查詢結果

2010-11-24 11:52:15

MYSQL表字段最大值

2009-08-21 17:53:28

C#查詢結果

2023-05-12 17:45:15

MySQL索引排序

2024-03-15 09:50:00

NULLSQL優化

2024-05-22 09:01:53

InnoDBB+索引

2020-12-31 08:05:27

MySQL服務器版本號

2010-11-25 14:49:08

MySQL查詢最大值

2022-06-21 08:13:34

MySQL查詢數據庫

2011-07-13 13:39:46

CHARINDEXSqlServer

2011-10-11 10:49:25

Oracle
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜一区二区三区在线观看 | 亚洲一区二区视频 | 99久久精品免费看国产四区 | 国产精品一区二区三级 | 天堂一区二区三区 | 国产精品欧美一区二区三区不卡 | 爱草在线| 中文字幕免费观看 | 精品国产一区二区三区久久久四川 | 精品在线观看入口 | 高清视频一区二区三区 | 久久久做| 国产成人99久久亚洲综合精品 | 日韩视频在线观看一区二区 | 仙人掌旅馆在线观看 | 波波电影院一区二区三区 | 日韩成人免费av | 国产精品视频久久久 | 偷拍自拍在线观看 | 免费久久精品 | 免费午夜视频 | 91久久爽久久爽爽久久片 | 青青草免费在线视频 | 波多野吉衣久久 | 鸳鸯谱在线观看高清 | 免费一区二区三区 | 久久精品国产a三级三级三级 | 亚洲人成在线观看 | 日本在线播放一区二区 | 亚洲二区在线 | 美女逼网站 | 欧美影院| 成人福利在线 | 蜜桃精品视频在线 | 久久久精选 | 中文字幕av第一页 | 欧美一区免费 | 国产高清在线精品 | 亚洲福利免费 | av大片在线观看 | 国产精品美女久久久久aⅴ国产馆 |