我有类似的东西
SELECT * FROM table WHERE id IN (118,17,113,23,72);
Run Code Online (Sandbox Code Playgroud)
如果我这样做,它会以ID升序返回行.有没有办法按IN语句中给出的顺序取回行?
nic*_*ico 95
你应该使用"ORDER BY FIELD".所以,例如:
SELECT * FROM table WHERE id IN (118,17,113,23,72)
ORDER BY FIELD(id,118,17,113,23,72)
Run Code Online (Sandbox Code Playgroud)
Bri*_*ian 13
尝试使用FIND_IN_SET:
SELECT * FROM table WHERE id IN (118,17,113,23,72)
ORDER BY FIND_IN_SET(id, '118,17,113,23,72');
Run Code Online (Sandbox Code Playgroud)