我有一个名为 iv6_posts 的表 我只想选择记录少于 5 行的记录 它应该在一个查询中
像这样:
select IF((select count(*) from iv6_posts)<5,select * from iv6_posts,null)
最佳答案
你不能用普通的 WHERE
实现它,因为 COUNT()
是一个组函数,你不能使用普通的 HAVING
因为它将行分组。
相反,您必须评估不同查询中的总计数并将其与例如CROSS JOIN
相结合:
SELECT
iv6_posts.*
FROM
iv6_posts
CROSS JOIN
(
SELECT
COUNT(1) AS c
FROM
iv6_posts
) AS init
WHERE
c<5
检查 fiddle
关于php - 仅当行少于 5 时才选择 MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25078303/