mysql查询,让结果按10,32,22,76,13,44的顺序检索出来
封面图
•
2025-10-13
•
MySQL
360
0
0
0
在 MySQL 中,如果你希望查询结果按照特定的顺序(如 `10, 32, 22, 76, 13, 44`)显示,可以使用 `ORDER BY` 结合 `FIELD()` 函数来实现。 假设你有一个表 `your_table`,并且你想根据字段 `id` 的值按指定顺序排序,可以这样写 SQL 查询: ```sql SELECT * FROM your_table WHERE id IN (10, 32, 22, 76, 13, 44) ORDER BY FIELD(id, 10, 32, 22, 76, 13, 44); ``` ### 解释: - `WHERE id IN (...)`:筛选出你想要的 id 值。 - `FIELD(id, 10, 32, 22, 76, 13, 44)`:这个函数会返回每个 `id` 在列表中的位置(从 1 开始),MySQL 会根据这个位置进行排序。 ### 示例: 假设你的表中有如下数据: | id | name | |-----|-------| | 10 | Alice | | 32 | Bob | | 22 | Carol | | 76 | Dave | | 13 | Eve | | 44 | Frank | 执行上面的查询后,结果将按 `10, 32, 22, 76, 13, 44` 的顺序返回。 --- ### 注意事项: - 如果你没有使用 `WHERE` 子句,可能会返回所有记录,但只按你指定的顺序排列那些匹配的记录。 - `FIELD()` 是 MySQL 特有的函数,其他数据库(如 PostgreSQL)可能不支持,但你可以用 `CASE WHEN` 实现类似效果。 如果你想用 `CASE WHEN` 实现兼容性更好的方式,也可以这样写: ```sql SELECT * FROM your_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; ``` 这两种方法都可以实现你想要的排序效果。
上一篇:
MySQL 获取当前时间的秒级、毫秒级时间戳
下一篇:
视频播放暂停时间 用什么类型字段保存
标题录入,一次不能超过6条
留言
评论