MySql 随机查询
MySql random query
我有一个table,里面的结构和数据如下:
table 有一个名为“id”的自动递增字段。它有另一个名为“q_r_id”的字段,它也存储 id 但这里的 id 可能会重复(例如,id-12 可能会重复超过 1 行,但最多 5 行)。
我想 select 固定数量的记录来自这个 table 随机但确保从 'q_r_id' 字段,如果例如选择 id-12 那么所有行(即 id-12 的所有五行都应包含在随机结果中。
我正在使用以下查询但没有得到想要的结果:
SELECT * FROM tblreasoningip_r WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
group BY q_r_id LIMIT 0,30
非常感谢任何帮助。
尝试合并,
SELECT * FROM
(
SELECT * FROM tblreasoningip_r
WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
UNION
SELECT * FROM tblreasoningip_r WHERE q_r_id = 12
)
GROUP BY id
我有一个table,里面的结构和数据如下:
table 有一个名为“id”的自动递增字段。它有另一个名为“q_r_id”的字段,它也存储 id 但这里的 id 可能会重复(例如,id-12 可能会重复超过 1 行,但最多 5 行)。
我想 select 固定数量的记录来自这个 table 随机但确保从 'q_r_id' 字段,如果例如选择 id-12 那么所有行(即 id-12 的所有五行都应包含在随机结果中。
我正在使用以下查询但没有得到想要的结果:
SELECT * FROM tblreasoningip_r WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
group BY q_r_id LIMIT 0,30
非常感谢任何帮助。
尝试合并,
SELECT * FROM
(
SELECT * FROM tblreasoningip_r
WHERE id >= (SELECT FLOOR(MAX(id)*RAND()) FROM tblreasoningip_r)
UNION
SELECT * FROM tblreasoningip_r WHERE q_r_id = 12
)
GROUP BY id