繁体   English   中英

设置 MYSQL 之前 SELECT 的 WHERE 条件

[英]Set MYSQL WHERE condition from previous SELECT

我有以下 MySQL 查询

SELECT `category` 
FROM `jeopardy_questions` 
WHERE `amount` = "$2,000" 
GROUP BY `category` 
HAVING COUNT(*) > 4 
ORDER BY RAND() LIMIT 1

这将给我一个随机类别,该类别中至少有 5 个问题。

现在我想获取该类别的所有行。 那么我该怎么做第二个 SELECT WHERE category等于从上一个查询返回的类别?

我尝试了以下但我相信 RAND() 导致它崩溃/超时。

SELECT *
FROM `jeopardy_questions`
WHERE `category` = (
    SELECT `category` 
    FROM `jeopardy_questions` 
    WHERE `amount` = "$2,000" 
    GROUP BY `category` 
    HAVING COUNT(*) > 4 
    ORDER BY RAND() LIMIT 1
)

您可以将上述查询用作子查询。 像这样:

SELECT *
FROM `jeopardy_questions`
WHERE `category` = (
    SELECT `category` 
    FROM `jeopardy_questions` 
    WHERE `amount` = "$2,000" 
    GROUP BY `category` 
    HAVING COUNT(*) > 4 
    ORDER BY RAND() LIMIT 1
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM