Select * from table where id in ($id_list)...
如何使结果与$id_list
中指定的顺序相同?
如果$id_list='2,1,5...'
,那么结果集应该是相同的顺序
答案 0 :(得分:2)
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
了解更多详情
答案 2 :(得分:1)
使用FIELD()
功能。
SELECT *
FROM table
WHERE id IN ($id_list)
ORDER BY FIELD(id, $id_list)
使用FIELD()
比使用FIND_IN_SET()
更好,因为它们会被比作数字。