mysql - 通过固定列表对 MySQL 中的项目进行排序?

标签 mysql sql

我将有一个固定的项目列表,直到我运行查询时我才会知道,因为有一个随机化步骤。

我想要以下内容:

假设 is_launch_set 将返回 1, 3, 7, 11 但已随机分配到以下位置:

SELECT * FROM items WHERE is_launch_set=1 ORDER BY id values (3,11,7,1);

关于如何实现这一目标的任何想法?我在想可能是 find_in_set 但不太确定。

最佳答案

您可以通过以下方式做到这一点:

ORDER BY FIND_IN_SET(id, '3,11,7,1')

ORDER BY FIELD(id, 3, 11, 7, 1)

ORDER BY CASE id WHEN 3 THEN 0
                WHEN 11 THEN 1
                 WHEN 7 THEN 2
                 WHEN 1 THEN 3
                        ELSE 4
         END

关于mysql - 通过固定列表对 MySQL 中的项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10940402/

相关文章:

php - 将输入的数据从 html 表单添加到 mysql 数据库,简单

java - 如何将数据保存在多个 sql 行的一个 thymeleaf 页面中

mysql - 将文本文件中的数据导入到sql表中

SQL 使用 sp_HelpText 查看链接服务器上的存储过程

mysql - WordPress 是否有可以向 Microsoft SQL 数据库发送数据或从 Microsoft SQL 数据库接收数据的服务/产品/插件

mysql插入只有在不重复时才触发

php - Android发送数据到mysql

sql - 仅按字符串的数字部分排序

python - 使用 pandas.io.sql.read_frame,我可以像 read_csv 一样解析日期吗?

PHP和MYSQL计算月总计并复制到另一个表