与mysql中的整数值进行比较

时间:2013-07-28 07:45:15

标签: java mysql

我想编写一个sql查询,如果特定列的总和为零,则将检索结果。我尝试过如下:(我只编写了检查部分,因为此部分的错误即将发生。)

query=.... WHERE SUM(column1)='0'

coumn1具有整数数据类型。我收到以下错误:

java.sql.SQLException: Invalid use of group function
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:3)

您的查询错误。如果要使用having等集合函数,则应使用sum()子句。

  

HAVING子句已添加到SQL,因为WHERE关键字不能与聚合函数一起使用。

查看MySql documentation of SELECT

  

WHERE子句(如果给定)指示要选择的行必须满足的条件。 where_condition是一个表达式,对于要选择的每一行,其计算结果为true。如果没有WHERE子句,该语句将选择所有行。

     

在WHERE表达式中,您可以使用MySQL支持的任何函数和运算符,但聚合(汇总)函数除外。

答案 1 :(得分:1)

SELECT语句中使用 HAVING 子句来指定行或聚合组的过滤条件。

MySQL HAVING子句通常与GROUP BY子句一起使用。与GROUP BY子句一起使用时,可以将过滤条件应用于GROUP BY子句中显示的列。如果省略GROUP BY子句,则MySQL HAVING子句的行为类似于WHERE子句。请注意,MySQL HAVING子句将条件应用于每组行,而WHERE子句将条件应用于每个行。

在查询中使用HAVING和聚合函数:

query=.... HAVING SUM(column1)='0';