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

SQL ORDER BY specific sequence with dynamic multiple values?

我有一个 table,其中有一些 material 列表。现在我想要的是,我想按特定顺序显示一些选定的 material。我现在 运行 的 sql 查询是:

SELECT * FROM my_materials WHERE material_id IN ($materialIds)

其中 material_id 是 table 的主键,$materialdIds 是一个包含一些动态值的变量,假设它具有这些值 1,5,2,3,9

现在我想按顺序(1,5,2,3,9)显示那些 material。

这是一个类似的问题,但在这种情况下,值为 specific/static。但在我的项目中,值是动态的。

sql ORDER BY multiple values in specific order?

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

您可以使用Field()函数:

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

您可以指定 $materialIds

而不是 1,5,2,3,9