我在一个 mysql 查询中有问题
注意我已经检查了所有答案请不要将此问题标记为重复
我有一张名为“问题”的表,其中包含 que_id、cat_id 等字段
我需要从表中获取 50 条记录,这些记录应该是来自 cat_id=1 的随机 30 条和来自 cat_id=2 的随机 20 条记录
我想这应该这样做:
(SELECT * FROM questions
WHERE cat_id = 1
ORDER BY RAND()
LIMIT 30)
UNION ALL
(SELECT * FROM questions
WHERE cat_id = 2
ORDER BY RAND()
LIMIT 20)
(SELECT * FROM `questions` WHERE cat_id=2 and que_id >=
(SELECT FLOOR( MAX(que_id) * RAND()) FROM `questions` ) ORDER BY que_id LIMIT 20) UNION ALL
(SELECT * FROM `questions` WHERE cat_id=1 and que_id >=
(SELECT FLOOR( MAX(que_id) * RAND()) FROM `questions` ) ORDER BY que_id LIMIT 30)