mysql - 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)。
这是一个类似的问题,但在这种情况下,值是特定的/静态的。但在我的项目中,价值观是动态的。
如何用动态值解决这个问题?
解决方案
您可以使用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
推荐阅读
- matlab - 自“0000 年 1 月 1 日”以来的序列号:这是 -1 BC 还是 +1 CE?
- python - 如何让所有用户与 Telebot 进行电报聊天或在 Python 中请求 lib?
- azure - 如何将环境特定值传递给 Azure 管道?
- android - 将进度条居中对齐
- javascript - 对数组进行反应映射并在 div 中返回
- mysql - 当字段为空时,SQL 查询“like”运算符错误
- powerapps - GroupBy 和连接行
- oracle - Oracle:声明多个常量并在 WHERE 子句中使用它们
- mysql - 加快 mysql SQL 查询,但数据集庞大
- webrtc - RFC 8285 中解释的有关 RTP 扩展标头结构的问题