MySQL LIMT 是一个子查询?

MySQL LIMT is a subquery?

我想使用 select 语句来控制另一个 select 查询的限制,我无法让它工作,我在下面有。大括号returns中的Select是一个INT。 我是 MySQL 的新手,所以我不确定我应该使用什么来让它工作。

SELECT * 
FROM `tbl_prod` 
WHERE prod_id = 32 
ORDER BY prod_level ASC , prod_date 
LIMIT 
    (SELECT max_count 
    FROM Prod_subscription 
    WHERE prod_id = 32)

你不能在LIMIT中写子查询,但是你可以使用动态SQL来得到你想要的结果。

SET @num = (
    SELECT max_count 
    FROM Prod_subscription 
    WHERE prod_id = 32);

PREPARE STMT FROM 'SELECT * 
FROM `tbl_prod` 
WHERE prod_id = 32 
ORDER BY prod_level ASC , prod_date 
LIMIT ?';
EXECUTE STMT USING @num;