mysql - MySQL查询“in(a,b,c)”,如何以相同的顺序(a,b然后c)返回元素?
问题描述
通过 ID 以精确的顺序在表格中搜索精确元素,我该如何使用这种请求:
select * from TABLE where ID in (1, 7, 2)
按我要求的顺序对元素进行排序(然后ID = 1
)?如下所示:ID = 7
ID = 2
TABLE
ID | field1 | ...
1 | value | ...
7 | value | ...
2 | value | ...
当然,所请求的顺序不是其中一个字段的自然顺序(无法order by field
获得结果)。
解决方案
使用FIELDS如下
select * from TABLE where ID in (1, 7, 2) ORDER BY FIELD(ID, 1, 7, 2)
推荐阅读
- slurm - SLURM:在作业脚本中等待作业
- angular - 我需要基于 window.MediaRecorder 以 Angular 6 动态导入 javascript 文件
- php - 连接具有相同字段名称的表时的php关联数组
- python - 值错误:在对象 forloop 中解包的值太多
- kdb - (q/kdb+) 从磁盘中保存的表中删除列
- java - MongoDb - 通过java导入具有一百万条记录的大型Json文件 - 内存不足错误
- c# - 我可以使用 SQL 触发器来跟踪数据库上 C# 控制台应用程序的更改吗?
- java - 无法从选项列表中检索结果
- mysql - MySQL更新基于另一个表中的查询
- angular - Angular NGRX - 更新相关数据