网站首页 文章专栏 MySQL如何按指定字段排序?自定义排序?
MySQL如何按指定字段排序?自定义排序?
编辑时间:2019-08-01 14:42 作者:小铨 浏览量:78

问题描述

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

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

降序排列的 SQL 为:

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

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

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

解决方案

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

语法

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

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

因此, 完整的 SQL 为:

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

常见应用

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



    出自:铨程互动

    地址:www.wuhequan.cn

    转载请注明出处!


来说两句吧
最新评论
0.073091s