久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

怎么對MySQL查詢結果進行排序

133次閱讀
沒有評論

共計 1489 個字符,預計需要花費 4 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

怎么對 MySQL 查詢結果進行排序,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

MySQL 查詢結果如何排序

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

idname***

1lucy…

3lucy…

2lily…

4lucy…

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

idname***

1lucy…

3lucy…

4lucy…

2lily…

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

MySQL 查詢結果如何排序

FIND_IN_SET(str,strlist)

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

mysql SELECTFIND_IN_SET(b , a,b,c,d – 2

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

idnameFIND_IN_SET**

1lucy1…

3lucy1…

2lily0…

4lucy1…

表結構如下:

mysql select*fromtest;+—-+——-+|id|name|+—-+——-+|1|test1||2|test2||3|test3||4|test4||5|test5|+—-+——-+

執行以下 SQL:

mysql select*fromtestwhereidin(3,1,5);+—-+——-+|id|name|+—-+——-+|1|test1||3|test3||5|test5|+—-+——-+3rowsinset(0.00sec)

這個 select 在 mysql 中得結果會自動按照 id 升序排列,

但是我想執行 select*fromtestwhereidin(3,1,5); 的結果按照 in 中得條件排序, 即:3,1,5, 想得到的結果如下:

idname

3test3

1test1

5test5

方法如下:

select*fromtestwhereidin(3,1,5)orderbyfind_in_set(id, 3,1,5 select*fromtestwhereidin(3,1,5)orderbysubstring_index(3,1,2 ,id,1);

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1489字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 凤庆县| 射洪县| 多伦县| 莆田市| 甘肃省| 阿克| 岚皋县| 淮北市| 绍兴县| 广丰县| 徐汇区| 阿尔山市| 调兵山市| 手机| 祁东县| 昆山市| 保靖县| 民乐县| 曲阜市| 苗栗县| 安仁县| 南漳县| 个旧市| 昌都县| 天津市| 广宗县| 松原市| 嘉义县| 大兴区| 库车县| 沭阳县| 开化县| 东丰县| 蒲城县| 普兰县| 永吉县| 盈江县| 丹巴县| 闸北区| 横山县| 漳州市|