MySQL查询由查询本身排序

时间:2014-04-27 19:18:39

标签: php mysql sql sorting

我有这个问题:

SELECT `name` FROM `products` WHERE `id` = 0 OR `id` = 4 OR `id` = 2
  • 基本上,我希望查询按OR语句的顺序排序(基本上,第一个返回的对象将是ID 0,第二个将是4,第三个是2)。 这可能吗?

2 个答案:

答案 0 :(得分:3)

试试这个

select name from products WHERE id=0 OR id= 4 OR id=2 order by FIELD(id,0,4,2);

FIELD()返回4,2,...列表中0的索引(位置)。如果未找到0,则返回0.

注意:这会让你的查询慢一点。

答案 1 :(得分:0)

我相信您正在寻找FIND_IN_SET()功能:

SELECT name FROM products WHERE id IN (0,4,3) ORDER BY FIND_IN_SET(id, '0,4,3');