代码之家  ›  专栏  ›  技术社区  ›  AdRock

计算日期尚未超过的行

  •  2
  • AdRock  · 技术社区  · 14 年前

    我正在尝试计算日期尚未超过的行数,以便只能获取当前记录

    我说错话了

    mysql错误111无效使用组函数

    SELECT COUNT(festivalid) FROM festivals WHERE min(datefrom) > now() 
    
    3 回复  |  直到 14 年前
        1
  •  2
  •   OMG Ponies    14 年前

    错误的原因是您不能在 WHERE 子句-仅在 HAVING 你能做到吗?并定义 子句,您的查询需要有 GROUP BY 条款定义:

      SELECT COUNT(f.festivalid)
        FROM FESTIVALS f
    GROUP BY ? --festivalid would NOT be an ideal choice
      HAVING MIN(datefrom) > now()
    

    ……但我对这个问题有疑问,认为最好使用:

    SELECT COUNT(f.festivalid) 
      FROM FESTIVALS f
     WHERE f.datefrom > CURRENT_TIMESTAMP
    

    CURRENT_TIMESTAMP ANSI标准是否等同于特定于MySQL NOW() ,使查询可移植到其他数据库。

        2
  •  4
  •   corymathews    14 年前
    SELECT COUNT(festivalid) 
    FROM festivals 
    WHERE datefrom > now() 
    

    不要使用min函数。它选择的最小日期不是你要找的。

    min函数通常使用如下

    SELECT MIN(dateFrom) FROM festivals
    
        3
  •  3
  •   Jhonny D. Cano -Leftware-    14 年前

    不要使用min…

    SELECT COUNT(festivalid) FROM festivals WHERE datefrom > now() 
    
    推荐文章