是否可以以SELECT预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段?
SELECT
这两个语句以相同顺序返回它们:
SELECT id FROM table WHERE id in (7,2,5,9,8) SELECT id FROM table WHERE id in (8,2,5,9,7)
我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求:
SELECT id FROM table WHERE id in (7,2,5,9,8) ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
将给不同的结果
SELECT id FROM table WHERE id in (7,2,5,9,8) ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
[FIND_IN_SET](http://dev.mysql.com/doc/refman/5.0/en/string- functions.html#function_find-in- set)返回id给定第二个参数的位置,因此对于上面的第一种情况,id7的位置在集合中的位置1,2的位置在2,依此类推-mysql在内部得出类似
[FIND_IN_SET](http://dev.mysql.com/doc/refman/5.0/en/string- functions.html#function_find-in- set)
id
id | FIND_IN_SET ---|----------- 7 | 1 2 | 2 5 | 3
然后按的结果排序FIND_IN_SET。
FIND_IN_SET