Hai*_*vgi 4 php mysql sql-order-by
如果我有一个像这样的查询:
SELECT * FROM table WHERE id IN (3,6,1,8,9);
Run Code Online (Sandbox Code Playgroud)
这个id数组是动态构建的,顺序对我很重要.
$my_array = array (3,6,1,8,9) ;
Run Code Online (Sandbox Code Playgroud)
如何按照元素在数组中出现的顺序对结果进行排序?
它可以在MYSQL查询中执行,或者我必须在通过php后订购它?
您可以通过从列派生的值进行排序.您可以使用CASE运算符指定顺序:
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
Run Code Online (Sandbox Code Playgroud)