SQL查询语句如下: select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44) 让结果按10,32,22,76,13,44的顺序检索出来,请问如何书写?
2025-09-20 22:53
MySQL
124
0
0
0
标题录入
封面图
你可以使用 `ORDER BY` 结合 `FIELD()` 函数来实现按指定顺序排序。在 MySQL 中,可以这样写: ```sql SELECT * FROM table WHERE ID IN (10, 32, 22, 76, 13, 44) ORDER BY FIELD(ID, 10, 32, 22, 76, 13, 44); ``` ### 解释: - `WHERE ID IN (...)`:筛选出 ID 在给定列表中的记录。 - `ORDER BY FIELD(ID, 10, 32, 22, 76, 13, 44)`:根据 `ID` 的值按照你指定的顺序进行排序。 --- ### 注意: - `FIELD()` 是 MySQL 特有的函数,如果你使用的是其他数据库(如 PostgreSQL、SQL Server 等),可以用其他方式实现。 --- ### 如果是 SQL Server 或 PostgreSQL: #### SQL Server: 可以使用 `CASE` 表达式: ```sql SELECT * FROM table WHERE ID IN (10, 32, 22, 76, 13, 44) ORDER BY CASE WHEN ID = 10 THEN 1 WHEN ID = 32 THEN 2 WHEN ID = 22 THEN 3 WHEN ID = 76 THEN 4 WHEN ID = 13 THEN 5 WHEN ID = 44 THEN 6 END; ``` #### PostgreSQL: 也可以使用 `CASE` 或 `array_position`(如果使用数组): ```sql SELECT * FROM table WHERE ID IN (10, 32, 22, 76, 13, 44) ORDER BY array_position(ARRAY[10, 32, 22, 76, 13, 44], ID); ``` --- ### 总结: - **MySQL**:使用 `ORDER BY FIELD(...)` - **SQL Server / PostgreSQL**:使用 `CASE` 或 `array_position` 等方式 如需进一步帮助,请告诉我你使用的数据库类型。
上一篇:
成语大全
下一篇:
成语大全
标题录入,一次不能超过6条
冥想是什么?怎么冥想?
T:0.008619s,M:116.58 KB
返回顶部
留言
留言
评论