MySql随机查询

时间:2015-02-03 04:41:02

标签: mysql random

我有一个表,其结构和数据如下: enter image description here

该表有一个名为“id”的自动增量字段。它有另一个名为'q_r_id'的字段,它也存储id,但这里可以重复id(例如id-12可以重复超过1行但最多5行)。

我想从此表中随机选择固定数量的记录,但要确保从'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

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

尝试结合,

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