php - 仅当行少于 5 时才选择 MYSQL

标签 php mysql if-statement count

我有一个名为 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/

相关文章:

sql - 优化右连接

java - 以更短的方式编写 Java 长 If/Else 循环

if-statement - Love2D If# of i,v 表中

php - 从 PHP 获取奇怪的 ip

php - 引用 - 这个错误在 PHP 中意味着什么?

php - 从一张表中选择超过 10,000 次

c++ - 求 5 和 3 的所有倍数之和小于 1000 的这个 C++ 代码有什么问题?

php - 检查提交值是否在数组中?

mysql - SQL - 如何插入同一列具有多个值的记录?

mysql - 数据库中特定字段(列)的数据量