MySQL ORDER BY IN()

Hen*_*oom 63 php mysql sql-order-by in-function

我有一个PHP数组,里面有ID号.这些数字已经订购.

现在我想通过IN()方法得到我的结果,以获得所有的ID.

但是,这些ID应该像IN方法一样进行排序.

例如:

IN(4,7,3,8,9)  
Run Code Online (Sandbox Code Playgroud)

应该得到如下结果:

4 - Article 4  
7 - Article 7  
3 - Article 3  
8 - Article 8  
9 - Article 9
Run Code Online (Sandbox Code Playgroud)

有什么建议?也许有这样做的功能?

谢谢!

Ale*_*lli 140

我认为你可能正在寻找函数FIELD - 虽然通常被认为是一个字符串函数,它也适用于数字!

ORDER BY FIELD(field_name, 3,2,5,7,8,1)
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 8

你可以使用FIELD():

ORDER BY FIELD(id, 3,2,5,7,8,1)
Run Code Online (Sandbox Code Playgroud)

返回str1,str2,str3,...列表中str的索引(位置).如果未找到str,则返回0.

虽然这是一种丑陋的黑客攻击,所以如果你别无选择,那真的只能使用它.在您的应用中对输出进行排序可能会更好.