仅当行小于5时才使用MYSQL SELECT

时间:2014-08-01 10:34:26

标签: php mysql if-statement count

我有一张名为iv6_posts的表 我想只在记录小于5行时选择记录 它应该在一个查询中

类似的东西:

   select IF((select count(*) from iv6_posts)<5,select * from iv6_posts,null)

1 个答案:

答案 0 :(得分:1)

您无法使用普通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