mysql按问题排序

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后订购它?

Mar*_*ers 9

您可以通过从列派生的值进行排序.您可以使用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)