sql - 搜索结果按特定顺序显示?

标签 sql mysql

SELECT id FROM films WHERE id IN (90,4,40)

结果

4
40
90

但我希望它返回 90,4,40 我应该做什么? (mysql)


抱歉,还有一个问题:

SELECT id FROM films WHERE id IN (90,4,40) ORDER BY FIELD(id, 90, 4, 40) 可以 但说实话

 for ( $i = 1; $i <10; $id ++ ){
     $IDarray[] = random();
 }


SELECT id FROM films WHERE id IN "(". implode(',',$IDarray). " ) ";

我想按上面的 ID 排序,但 ID 是随机的,我想保持 ID 的随机顺序

最佳答案

ORDER BY CASE `id` WHEN 90 THEN 0
                   WHEN 4 THEN 1
                   WHEN 40 THEN 2
                   ELSE 3
         END CASE

ORDER BY FIND_IN_SET(`id`, '90,4,40')

ORDER BY FIELD(`id`, 90, 4, 40)

关于sql - 搜索结果按特定顺序显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3748688/

相关文章:

sql - 除了结构化 XML 数据之外,还选择行数据

SQL 获取未在项目中工作的名称

sql - 为什么引用 SQLite rowid 会导致外键不匹配?

MySQL - 存储过程限制问题

mysql - 查询2个表之间的mysql连接

java - 如何使用 JAVA 从 mySQL 数据库中提取 BLOB(从二维数组到 BLOB)

sql - 在 Excel VBA 中检查对象是否为 Null

sql - 两个用不同语言编写的程序可以连接到同一个 SQL 数据库吗?

带有 html 表单的 Php 页面在表单完成之前执行 php 代码

mysql - 从3个表一对多选择sql