mysql - 从 MySQL 表中选择随机查询
问题描述
我正在尝试从表中选择特定数量的随机问题
问题表中的 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
解决方案
如果您可以使用 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 中添加任意数量。
推荐阅读
- javascript - 如何将私人 MP4 URL 从 Google Cloud Storage 传递到我的 ChromeCast?(chrome.cast.media.MediaInfo)
- google-apps-script - 有没有办法在 Google 表格中动态合并包含特定文本的单元格?
- python-3.x - Python:构造一个二维数组
- android - ios和android后台上传大文件
- javascript - 用于创建同步时间线的最佳 HTML 和 Javascript
- python - 从命令行打开模型的CAD图片
- node.js - How do I serve JSON files with proper mimetype and not text/plain?
- browser - 有没有办法让网络应用程序确定浏览器是否在个人计算机上运行?
- angular - 使用 rxjs Angular Firestore 从 id 获取合并的 observable
- c# - 当 ListView 中没有项目或没有选择项目时,是否可以禁用 ContextMenu?