【问题标题】:MySql random queryMySql 随机查询
【发布时间】:2015-02-03 04:41:01
【问题描述】:

我有一张表,里面的结构和数据如下:

该表有一个名为“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

任何帮助将不胜感激。

【问题讨论】:

  • 你试过 ORDER BY rand() 和正确的 where 子句吗?

标签: mysql random


【解决方案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

【讨论】:

  • Abhi 您的解决方案没有产生预期的结果 :(
  • 我想从表中随机选择 50 行 确保如果选择了具有重复值的行(在我上面的例子中为字段 1),那么应该包括所有 5 个重复值。我希望我/米让自己清楚......
猜你喜欢
  • 1970-01-01
  • 2014-01-02
  • 1970-01-01
  • 1970-01-01
  • 2011-12-04
  • 1970-01-01
  • 2021-09-11
  • 2018-10-04
  • 1970-01-01
相关资源
最近更新 更多