我有一个 ID 从 1 到 20 的表,我需要获取 10 行(随机),但是 10 行中有 3 行是预定义的,需要位于结果列表的开头 - 在一个 MySQL 语句中:
这可行,但生产表包含超过 500K 行:
SELECT id
FROM tableName
WHERE id IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
ORDER BY FIELD(id, 5,6,7) DESC, RAND()
LIMIT 10
我需要这样的东西:
SELECT id
FROM tableName
WHERE id IN (5,6,7,*)
ORDER BY FIELD(id, 5,6,7) DESC, RAND()
LIMIT 10
...正确的语法是什么?