如何使MySQL结果集与指定相同?

时间:2011-02-17 07:43:22

标签: mysql

Select * from table where id in ($id_list)...

如何使结果与$id_list中指定的顺序相同?

如果$id_list='2,1,5...',那么结果集应该是相同的顺序

3 个答案:

答案 0 :(得分:2)

尝试FIND_IN_SET

SELECT * FROM tablename 
WHERE id IN (1,5,10) 
ORDER BY FIND_IN_SET(id, '1,5,10')

答案 1 :(得分:1)

您需要通过开关案例

订购
SELECT * FROM table
WHERE id IN (3,6,1,8,9)
ORDER BY CASE id WHEN 3 THEN 1
                 WHEN 6 THEN 2
                 WHEN 1 THEN 3
                 WHEN 8 THEN 4
                 WHEN 9 THEN 5
         END

了解更多详情

MySQL ORDER problem

答案 2 :(得分:1)

使用FIELD()功能。

SELECT * 
FROM table
WHERE id IN ($id_list)
ORDER BY FIELD(id, $id_list)

使用FIELD()比使用FIND_IN_SET()更好,因为它们会被比作数字。