mysql sql where id in(25,12,87) 結(jié)果集如何用按照 25 12 87排序?
問(wèn)題描述
mysql sql where id in(25,12,87) 結(jié)果集如何用按照 25 12 87排序?
數(shù)據(jù)表有一個(gè)id字段,sql的結(jié)果集如何根據(jù) 25 12 87這樣的順序顯示?
id251287
而不是id122587
問(wèn)題解答
回答1:SELECT * FROM table WHERE id IN(25,12,87) ORDER BY find_in_set(id,’25,12,87’)
回答2:這個(gè)在高性能mysql里面有介紹,in查詢其實(shí)是一個(gè)掃表的過(guò)程,in查詢時(shí),底層是先將in里面的id就從小到大排序優(yōu)化,然后再執(zhí)行in查詢的,所以最好是手動(dòng)將id從小到大排序后再執(zhí)行in查詢,例如in (12,25,87),然后再按照你想要的順序排序就好了
回答3:值取出之后在應(yīng)用程序排序
回答4:SELECT * FROM table WHERE id IN(25,12,87) ORDER BY INSTR(’,25,12,87,’,CONCAT(’,’,id,’,’))
試試這個(gè)
回答5:思路轉(zhuǎn)換一下,分成3條按id查詢的SQL,取出來(lái)不就是按這個(gè)順序的了么
相關(guān)文章:
1. javascript - 為什么getValue()得出的是123?2. android webview 無(wú)法登陸126郵箱3. python - py2.7.12 + django1.11版 本機(jī)靜態(tài)文件配置問(wèn)題4. ruby - gem install rails -v 3.2.12 發(fā)生錯(cuò)誤5. javascript - 寫了一個(gè)驗(yàn)證12.5-20.5的正則老是報(bào)錯(cuò)?6. python如何轉(zhuǎn)換時(shí)間戳到"2017年6月12日 18點(diǎn)24分"這樣的格式呢?7. vim - docker中新的ubuntu12.04鏡像,運(yùn)行vi提示,找不到命名.8. html5 - 在移動(dòng)端設(shè)置font-size小于12px。line-height的問(wèn)題9. javascript - 如何將一個(gè)長(zhǎng)為365的數(shù)組對(duì)象按月份切割成12組?10. javascript - js正則驗(yàn)證:最長(zhǎng)12個(gè)字,僅限中文、英文大小寫、數(shù)字、基本符號(hào)
