从MySQL排序结果时遇到问题。代码如下:

$my_query = "
SELECT *
FROM tbl1, tbl2, tbl3
WHERE tbl1.id = tbl2.id2
  AND tbl1.sub_id = tbl3.sub_id
  AND tbl1.id IN(22, 55, 5, 10, 40, 2001, 187)
";

这个查询工作正常,但是当我打印它时,它是按tbl1.id ASC排序的。我想显示与IN(22,55,5,10,40,2001,187)中相同的顺序。
我认为这是可能的,但我尽了最大的努力,没有把它修好。有什么办法对我有效吗?

最佳答案

添加此ORDER BY子句,该子句使用FIELD函数获取所需的顺序:

ORDER BY FIELD(tbl1.id, 22, 55, 5, 10, 40, 2001, 187)

关于php - 通过多个ID排序MySQL查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7615596/

10-10 11:23