0

我在一个 mysql 查询中有问题

注意我已经检查了所有答案请不要将此问题标记为重复

我有一张名为“问题”的表,其中包含 que_id、cat_id 等字段

我需要从表中获取 50 条记录,这些记录应该是来自 cat_id=1 的随机 30 条和来自 cat_id=2 的随机 20 条记录

4

2 回答 2

0

我想这应该这样做:

(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)
于 2013-11-11T16:44:04.990 回答
0
(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)
于 2013-11-11T17:58:36.927 回答