zoukankan      html  css  js  c++  java
  • 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

    aliyun活动 https://www.aliyun.com/acts/limit-buy?userCode=re2o7acl
  • 相关阅读:
    为了抓包某APP所做的尝试(to be continued)
    VirtualBox的使用的一些Tips 网络配置|硬盘扩充
    斜线和反斜线简要历史,为什么windows和unix采用不同的路径分隔符
    求出二维数组主对角线、次对角线以及周边元素之和
    C#计算两个时间的时间差,精确到年月日时分秒
    C#获取MP3,WMA信息
    C#窗体随意移动
    DEV GridControl小结
    DEV 皮肤的使用
    C#窗体阴影
  • 原文地址:https://www.cnblogs.com/wangbin/p/1951810.html
Copyright © 2011-2022 走看看