【发布时间】:2015-05-16 13:49:47
【问题描述】:
我正在使用这个查询来选择 MySQL 中的行
SELECT * FROM `table` WHERE `id` IN (5,2,3,1,4);
现在默认情况下,行将按其id:1, 2, 3, 4, 5排序
有什么方法可以让我在查询中对行进行排序,所以顺序应该是:5, 2, 3, 1, 4 ?
【问题讨论】:
标签: php mysql sql phpmyadmin
我正在使用这个查询来选择 MySQL 中的行
SELECT * FROM `table` WHERE `id` IN (5,2,3,1,4);
现在默认情况下,行将按其id:1, 2, 3, 4, 5排序
有什么方法可以让我在查询中对行进行排序,所以顺序应该是:5, 2, 3, 1, 4 ?
【问题讨论】:
标签: php mysql sql phpmyadmin
您可以使用case 语句自定义排序
SELECT *
FROM table
WHERE id IN ( 5, 2, 3, 1, 4 )
ORDER BY CASE id
WHEN 5 THEN 1
WHEN 2 THEN 2
WHEN 3 THEN 3
WHEN 1 THEN 4
WHEN 4 THEN 5
ELSE 6
END
【讨论】:
使用 MySQL 的FIELD() 函数
SELECT *
FROM `table`
WHERE `id` IN (5,2,3,1,4)
ORDER BY FIELD(`id`, 5,2,3,1,4)
;
【讨论】: