MySQL ORDER BY IN()

2022-08-30 08:26:24

我有一个PHP数组,其中包含ID的数量。这些号码已订购。

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

但是,这些 ID 的顺序应与 IN 方法中的排序相同。

例如:

IN(4,7,3,8,9)  

应给出如下结果:

4 - Article 4  
7 - Article 7  
3 - Article 3  
8 - Article 8  
9 - Article 9

有什么建议吗?也许有一个功能可以做到这一点?

谢谢!


答案 1

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

ORDER BY FIELD(field_name, 3,2,5,7,8,1)

答案 2

您可以使用 FIELD()

ORDER BY FIELD(id, 3,2,5,7,8,1)

返回 str1、str2、str3、...列表。如果未找到 str,则返回 0。

这是一个丑陋的黑客,所以真的只有当你别无选择时才使用它。对应用中的输出进行排序可能会更好。


推荐