首页 > 解决方案 > 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 按特定顺序排列多个值?

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

标签: mysqlsqlsql-order-by

解决方案


您可以使用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


推荐阅读