源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2020-08-24 17:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:MySQL 按指定字段自定义列表排序的实现
[b]问题描述[/b] 大家都知道, MySQL 中按某字段升序排列的 SQL 为 (以 id 为例,下同): SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` ASC [b]降序排列的 SQL 为:[/b] SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY `id` DESC 有时以上排序并不能满足我们的需求。 例如, 我们想要按 id 以 5, 3, 7, 1 的顺序排列, 该如何实现。 这也是很多国内外同行经常遇到的问题之一。 下面我们给出按表中某字段, 以我们想要的列表方式排序的解决方案。 [b]解决方案[/b] 用"按字段排序" (ORDER BY FIELD). [b]语法[/b] ORDER BY FIELD(`id`, 5, 3, 7, 1) 要注意的是,FIELD 后面是没有空格的。 [b]因此, 完整的 SQL 为:[/b] SELECT * FROM `MyTable` WHERE `id` IN (1, 7, 3, 5) ORDER BY FIELD(`id`, 5, 3, 7, 1) [b]常见应用[/b] SELECT * FROM `MyTable` WHERE `name` IN ('张三', '李四', '王五', '孙六') ORDER BY FIELD(`name`, '李四', '孙六', '张三', '王五') 以上这篇MySQL 按指定字段自定义列表排序的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部