MySQL需要根據(jù)特定順序排序的實(shí)現(xiàn)方法
0 寫(xiě)在前面
在進(jìn)行業(yè)務(wù)需求的時(shí)候,不會(huì)根據(jù)排序去選擇數(shù)據(jù)。例如,在導(dǎo)出的時(shí)候數(shù)據(jù)排序是根據(jù)編輯時(shí)間去排序的,那么他的主鍵id會(huì)打亂。
假如: 要導(dǎo)出id為 3 ,1 , 2 ,6 , 5 的數(shù)據(jù)并且根據(jù)此順序?qū)С觥?/p>
1 問(wèn)題引入
如果直接在MySQL中寫(xiě)
SELECT 數(shù)據(jù) FROM 表名 WHERE 表名id IN (3, 1, 2, 6, 5)
會(huì)發(fā)生MYSQL默認(rèn)排序規(guī)則;
2 問(wèn)題解決
使用mysql的FIELD()
函數(shù)進(jìn)行自定義排序
使用id為例:
SELECT 數(shù)據(jù) FROM 表名 WHERE 表名.id IN (所有id) order by FIELD(id, 排序規(guī)則);
注意:排序規(guī)則需要一一對(duì)應(yīng),即使在 in()
的數(shù)據(jù)不影響,只要在field()確認(rèn)規(guī)則即可
3 寫(xiě)在末尾
因?yàn)閺臉I(yè)務(wù)里傳過(guò)來(lái)的數(shù)據(jù)肯定是規(guī)則排序,所以建議用IN() 和 FIELD()里的排序 對(duì)應(yīng)起來(lái)是最保險(xiǎn)的。
到此這篇關(guān)于MySQL需要根據(jù)特定順序排序的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)MySQL 特定順序排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Mysql在什么情況下會(huì)使用內(nèi)部臨時(shí)表
內(nèi)部臨時(shí)表是一種特殊輕量級(jí)的臨時(shí)表,本文主要介紹了Mysql在什么情況下會(huì)使用內(nèi)部臨時(shí)表,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10MySQL?中定位?DDL?被阻塞的問(wèn)題及解決方案
DDL 被阻塞了,如何找到阻塞它的 SQL?下面,就這個(gè)問(wèn)題,給一個(gè)清晰明了、拿來(lái)即用的解決方案,本文通過(guò)一個(gè)簡(jiǎn)單的demo給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2022-01-01Django創(chuàng)建項(xiàng)目+連通mysql的操作方法
這篇文章主要介紹了Django創(chuàng)建項(xiàng)目+連通mysql的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03MYSQL 創(chuàng)建函數(shù)出錯(cuò)的解決方案
在程序開(kāi)發(fā)過(guò)程中,大家有沒(méi)有遇到過(guò)mysql函數(shù)不能創(chuàng)建,我是遇到過(guò),是一個(gè)很麻煩的問(wèn)題,上網(wǎng)搜了些相關(guān)資料,整理在一起了,供大家參考,幫助那些需要幫助的朋友2015-08-08