MYSQL自定义排序
生活随笔
收集整理的這篇文章主要介紹了
MYSQL自定义排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
下面是本人關于mysql 自定義排序(field,INSTR,locate)的一點心得,希望對大家有所幫助
首先說明這里有三個函數(order by field,ORDER BY INSTR,ORDER BY locate)
原表:
id user pass
1 aaa aaa
2 bbb bbb
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
下面是我執行后的結果:
SELECT * FROM `user` order by field(2,3,5,4,id) asc
id user pass
1 aaa aaa
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
2 bbb bbb
根據結果分析:order by field(2,3,5,4,1,6) 結果顯示順序為:1 3 4 5 6 2
SELECT * FROM `user` order by field(2,3,5,4,id) desc
id user pass
2 bbb bbb
1 aaa aaa
3 ccc ccc
4 ddd ddd
5 eee eee
6 fff fff
根據結果分析:order by field(2,3,5,4,1,6) 結果顯示順序為:2 1 3 4 5 6
SELECT * FROM `user` ORDER BY INSTR( '2,3,5,4', id ) ASC
id user pass
1 aaa aaa
6 fff fff
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
根據結果分析:order by INSTR(2,3,5,4,1,6) 結果顯示順序為:1 6 2 3 5 4
SELECT * FROM `user` ORDER BY INSTR( '2,3,5,4', id ) DESC
id user pass
4 ddd ddd
5 eee eee
3 ccc ccc
2 bbb bbb
1 aaa aaa
6 fff fff
根據結果分析:order by INSTR(2,3,5,4,1,6) 結果顯示順序為:4 5 3 2 1 6
SELECT * FROM `user` ORDER BY locate( id, '2,3,5,4' ) ASC
id user pass
1 aaa aaa
6 fff fff
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
根據結果分析:order by locate(2,3,5,4,1,6) 結果顯示順序為:1 6 2 3 5 4
SELECT * FROM `user` ORDER BY locate( id, '2,3,5,4' ) DESC
id user pass
4 ddd ddd
5 eee eee
3 ccc ccc
2 bbb bbb
1 aaa aaa
6 fff fff
根據結果分析:order by locate(2,3,5,4,1,6) 結果顯示順序為:4 5 3 2 1 6
如我想要查找的數據庫中的ID順序首先是(2,3,5,4)然后在是其它的ID順序,你首先要把他降序排即(4 5 3 2),然后在 SELECT * FROM `user` ORDER BY INSTR( '4,5,3,2', id ) DESC limit 0,10 或用 SELECT * FROM `user` ORDER BY locate( id, '4,5,3,2' ) DESC 就得到你想要的結果了。
id user pass
2 bbb bbb
3 ccc ccc
5 eee eee
4 ddd ddd
1 aaa aaa
6 fff fff
轉載于:https://www.cnblogs.com/wangbin/archive/2011/02/12/1951810.html
總結
以上是生活随笔為你收集整理的MYSQL自定义排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python图像分析_python分析问
- 下一篇: vb 通过php连接mysql数据库连接