SQL WHERE IN (...) 按列表顺序排序?

标签 sql sorting where-clause

假设我使用 where 子句查询数据库

WHERE _id IN (5,6,424,2)

返回的游标是否可以按照列表中列出的 _id 的顺序进行排序? _id 属性在 Cursor 中从第一个到最后一个是 5、6、424、2?

这恰好是通过 ContentProvider 在 Android 上进行的,但这可能无关紧要。

最佳答案

使用子查询选择 ID 列表并加入它:


select t1.*
from t1
inner join
(
  select 1 as id, 1 as num
  union all select 5, 2
  union all select 3, 3
) ids on t1.id = ids.id
order by ids.num

更新:代码固定

关于SQL WHERE IN (...) 按列表顺序排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858828/

相关文章:

android - MySQL/SQLite/etc 数据库之间的区别?

php - 替换MySQL中的复杂字符串

mysql - 我的 where 子句返回的与我想要的相反

php - 查询。如果列 = 特定值,则返回所有

mysql - 如何重写jpql自定义查询中给定的查询?

sql - 将比较运算符作为参数传递并直接在 SQL 存储过程中使用

java - 学习排序需要一些帮助吗?

javascript - 简单排行榜的冒泡排序

ios - Swift 设置数组自定义排序

java new array where object value true, mysql 'where' 数组语法