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

 更新时间:2017年03月25日 11:07:19   投稿:jingxian  
下面小编就为大家带来一篇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 按指定字段自定义列表排序的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

蓄力AI

微信公众号搜索 “ 脚本之家 ” ,选择关注

程序猿的那些事、送书等活动等着你

相关文章

  • mysql执行计划Explain解读

    mysql执行计划Explain解读

    在数据库操作中,理解Explain执行计划对于性能优化至关重要,Explain展示了MySQL如何执行查询,包括选择哪些索引,如何连接表,以及估计的行数等,Select类型、访问表的方式、使用的索引、以及额外的执行信息,都是优化查询时需要考虑的因素
    2024-10-10
  • windows 10 下mysql-8.0.17-winx64的安装方法图解

    windows 10 下mysql-8.0.17-winx64的安装方法图解

    这篇文章主要介绍了windows 10 mysql-8.0.17-winx64的方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • mysql error 1130 hy000:Host''localhost''解决方案

    mysql error 1130 hy000:Host''localhost''解决方案

    本文将详细提供mysql error 1130 hy000:Host'localhost'解决方案,需要的朋友可以参考下
    2012-11-11
  • mysql常用监控脚本命令整理

    mysql常用监控脚本命令整理

    mysql监控脚本常用命令整理,感兴趣的朋友可以了解下哈
    2013-06-06
  • MySQL级联复制下如何进行大表的字段扩容

    MySQL级联复制下如何进行大表的字段扩容

    这篇文章主要介绍了MySQL级联复制下进行大表的字段扩容,库表信息环境是Mysql 8.0.22,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • MySQL 分表优化试验代码

    MySQL 分表优化试验代码

    我们的项目中有好多不等于的情况。今天写这篇文章简单的分析一下怎么个优化法。
    2010-04-04
  • MySQL缓存优化方案总结

    MySQL缓存优化方案总结

    最近迭代的产品版本从2.X来到了3.X,属于一个非常大的产品升级,比上个版本多了很多功能,那么上线之前肯定要在一个干净的环境里进行测试回归以及性能测试,本文总结一下数据库层面的一些缓存机制对查询速度整体的优化,需要的朋友可以参考下
    2023-08-08
  • mysql innodb的重要组件汇总

    mysql innodb的重要组件汇总

    这篇文章主要介绍了mysql innodb的重要组件的相关资料,帮助大家更好的理解和学习MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL与JDBC之间的SQL预编译技术讲解

    MySQL与JDBC之间的SQL预编译技术讲解

    这篇文章主要介绍了MySQL与JDBC之间的SQL预编译技术讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • MySQL批量导入Excel数据(超详细)

    MySQL批量导入Excel数据(超详细)

    这篇文章主要介绍了MySQL批量导入Excel数据(超详细),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-08-08

最新评论