SQL ORDER BY具有动态多个值的特定序列?

时间:2018-11-06 20:40:58

标签: mysql sql sql-order-by

我有一张桌子,上面有一些材料清单。现在我想要的是,我想按特定顺序显示一些选定的材料。我现在正在运行的sql查询是:

SELECT * FROM my_materials WHERE material_id IN ($materialIds)

material_id是表的主键,$materialdIds是包含一些动态值的变量,可以说它具有这些值1,5,2,3,9

现在我要按顺序准确显示这些材料(1、5、2、3、9)。

这里是一个类似的问题,但是在这种情况下,值是特定的/静态的。但是在我的项目中,值是动态的。

sql ORDER BY multiple values in specific order?

如何使用动态值解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用Field()功能:

SELECT * FROM my_materials 
WHERE material_id IN (1,5,2,3,9)
Order By Field(material_id, 1,5,2,3,9)

您可以指定1,5,2,3,9代替$materialIds