MySQL 自定义 order by 子句

标签 mysql

我有一个包含 125 条记录的 MySQL 表,主键是 id 字段。

我正在尝试根据用户如何通过网络表单提交新订单来输出行。

例如,如果返回的表单数据为 3,54,32,112,99,我将构建以下查询:

SELECT * FROM my_table WHERE id=3 OR id=54 OR id=32 OR id=112 OR id=99

我需要输出首先是第 3 行,然后是第 54、32 行等...但它只是使用默认的 ORDER BY 子句并按升序对输出进行排序。

最佳答案

尝试使用 FIND_IN_SET() :

SELECT * FROM my_table
         WHERE id IN (3,54,32,112,99)
         ORDER BY FIND_IN_SET(id,'3,54,32,112,99')

关于MySQL 自定义 order by 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21521299/

相关文章:

php - 将 JSON 数据存储为平面文件或数据库

php - SQLSTATE[HY000] [2003] 无法在 '127.0.0.1' (61) 错误上连接到 MySQL 服务器 Laravel 4.1

mysql - 遵循模式的自定义日历

mysql - 错误 : ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

java - 使用 JSTL 迭代列表内的集合

mysql - Rails,优化数据库查询

mysql - 如何为这种情况编写更好的 SQL

mysql - 将主键索引附加到mysql(使用Mysql工作台)导致 "GENERATED ALWAYS AS"错误

mysql case 满足多个条件

php - 从数据库读取php代码