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

标签 mysql sql sql-order-by

<分区>

我有一张表格,上面有一些 Material list 。现在我想要的是,我想按特定顺序显示一些选定的 Material 。我现在正在运行的 sql 查询是:

SELECT * FROM my_materials WHERE material_id IN ($materialIds)

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

现在我想按顺序(1,5,2,3,9)准确显示这些 Material 。

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

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

关于mysql - SQL ORDER BY 具有动态多个值的特定序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53179702/

相关文章:

php - 如何使用存储库模式来处理复杂的读取(SELECT)?

php - 基于文件的缓存或许多 mysql 查询

java - Oracle按不同顺序

mySQL:CASE、GROUP 和 ORDER By

sql - 如何按特定顺序排序

跨多个连接表的 MySQL ORDER BY 列

mysql - UPDATE with SELECT 子查询在 MySQL 5.7 上运行极其缓慢(但在 5.5 上运行良好)

php - 在 MySQL 中存储页面浏览量的最佳方式是什么?

MySql,如果没有返回行返回默认值

mysql - 在 SQL 中,如何检索包含另一个集合的所有值的集合?