MySQL通过id指定任意顺序

ma1*_*w28 10 mysql sql-order-by where-in

是否可以为MySQL SELECT语句指定任意顺序?例如,

SELECT * FROM table_name WHERE id IN (1, 3, 2, 9, 7) ORDER BY (1, 3, 2, 9, 7);
Run Code Online (Sandbox Code Playgroud)

直接列出的数字的顺序IN似乎并不重要.

The*_*ter 13

FIND_IN_SET函数可以解决这个问题

SELECT * FROM table_name WHERE id IN (1, 3, 2, 9, 7) ORDER BY FIND_IN_SET(id, '1,3,2,9,7');
Run Code Online (Sandbox Code Playgroud)

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set

编辑:注意find_in_set函数的字符串参数中缺少空格.


Gle*_*rry 5

查看mysql的ORDER BY FIELD.我认为它会完全符合您的要求.