【问题标题】:Selcting Random queries from MySQL table从 MySQL 表中选择随机查询
【发布时间】:2018-07-31 08:58:32
【问题描述】:

我正在尝试从表格中选择特定数量的随机问题

问题表中的 3 个随机问题被标记为 group_1,另外两个来自 group_3

这是我的 SQL 命令

SELECT
    questions.qid,
    tags.tag
FROM
    tag_dir tag_dir
JOIN questions ON questions.qid = tag_dir.qid
JOIN tags ON tags.id = tag_dir.tag_id
WHERE tags.id having 1 and 2
LIMIT 0,10

但我不知道如何获得特定数量的随机结果

这是我的表结构

这是我的db-fiddle

【问题讨论】:

    标签: mysql random foreign-keys


    【解决方案1】:

    如果您可以使用 UNION 获取每个标签的随机结果集,然后关联其他表,这可能会有所帮助。

    SELECT
        questions.qid,
        tags.tag
    FROM
        (
            (SELECT * from tag_dir where tag_id=1 order by rand() LIMIT 3) 
            UNION 
            (SELECT * from tag_dir where tag_id=2 order by rand() LIMIT 2)
       )  tq
       JOIN questions ON questions.qid = tq.qid
       JOIN tags ON tags.id = tq.tag_id
    

    您可以根据需要在 UNION 中添加任意数量。

    【讨论】:

      【解决方案2】:

      此查询返回 5 个随机结果。您可以通过修改LIMIT 子句来更改结果数。

      SELECT questions.qid, tags.tag 
          FROM tag_dir tag_dir 
      JOIN questions ON questions.qid = tag_dir.qid 
      JOIN tags ON tags.id = tag_dir.tag_id 
      WHERE tags.id having 1 and 2
          ORDER BY RAND()
          LIMIT 5;
      

      Reference

      【讨论】:

        猜你喜欢
        • 2018-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 2014-03-25
        • 1970-01-01
        • 2012-02-05
        相关资源
        最近更新 更多