• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL 按指定字段自定义列表排序的实现

    问题描述

    大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例,下同):

    SELECT * FROM `MyTable`
    WHERE `id` IN (1, 7, 3, 5)
    ORDER BY `id` ASC

    降序排列的 SQL 为:

    SELECT * FROM `MyTable`
    WHERE `id` IN (1, 7, 3, 5)
    ORDER BY `id` DESC

    有时以上排序并不能满足我们的需求。 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排列, 该如何实现。 这也是很多国内外同行经常遇到的问题之一。

    下面我们给出按表中某字段, 以我们想要的列表方式排序的解决方案。

    解决方案

    用"按字段排序" (ORDER BY FIELD).

    语法

    ORDER BY FIELD(`id`, 5, 3, 7, 1)

    要注意的是,FIELD 后面是没有空格的。

    因此, 完整的 SQL 为:

    SELECT * FROM `MyTable`
    WHERE `id` IN (1, 7, 3, 5)
    ORDER BY FIELD(`id`, 5, 3, 7, 1)

    常见应用

    SELECT * FROM `MyTable`
    WHERE `name` IN ('张三', '李四', '王五', '孙六')
    ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五')

    以上这篇MySQL 按指定字段自定义列表排序的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法
    • MySQL问答系列之什么情况下会用到临时表
    • Sql查询MySql数据库中的表名和描述表中字段(列)信息
    • 利用java+mysql递归实现拼接树形JSON列表的方法示例
    • Mysql表,列,库增删改查问题小结
    • Python中模块pymysql查询结果后如何获取字段列表
    • MySQL表和列的注释总结
    上一篇:mysql索引使用技巧及注意事项
    下一篇:mysql 列转行的技巧(分享)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL 按指定字段自定义列表排序的实现 MySQL,按,指定,字段,自定义,