我将有一个固定的项目列表,直到我运行查询时我才会知道,因为有一个随机化步骤。
我想要以下内容:
假设 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/