SQL - 按ID列表部分排序

时间:2015-11-13 13:29:38

标签: mysql sql sql-order-by

我有一个查询的表,条件类似id >10,我想根据AND id IN(3,4,5,6,7)列表中的id添加条件。

我想首先按列表中的id排序结果。 可以吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用MySQL :(请正确标记问题)

来自manual

  

<强> FIELD(STR,STR1,STR2,STR3,...)

     

返回str1,str2,str3,...列表中str的索引(位置)。如果未找到str,则返回0。

     

如果FIELD()的所有参数都是字符串,则所有参数都将作为字符串进行比较。如果所有参数都是数字,则将它们作为数字进行比较。否则,参数将被比较为double。

     

如果str为NULL,则返回值为0,因为NULL无法与任何值进行相等比较。 FIELD()是ELT()的补充。

mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 2
mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 0

所以你可以轻松做到

SELECT
...
ORDER BY FIELD(id, 3,4,5,6,7), id