HAVING和WHERE之间的区别

时间:2013-11-13 11:12:45

标签: mysql database select where

我有这张桌子,

CREATE TABLE Person 
    (
     id int auto_increment primary key, 
     name varchar(20), 
     Age varchar(30)
    );

INSERT INTO Person
(name, Age)
VALUES
('Ganesan', '23'),
('Prasanna', '30'),
('Karthikeyan', '27'),
('RParthiban', '33');

这个查询:

select Name, Age from Person HAVING Age > 30;

select Name, Age from Person WHERE Age > 30;

两个查询都产生相同的输出:

NAME    AGE
RParthiban  33

为什么?使用HavingWhere之间的区别或重要性是什么?

我相信一定有。每个都有什么例子?

感谢。

3 个答案:

答案 0 :(得分:2)

HAVING子句相当于组或聚合的WHERE子句。

http://technet.microsoft.com/en-us/library/ms180199.aspx

语法为SELECT ... FROM ... GROUP BY ... HAVING ... ORDER BY

e.g。

SELECT ID, SUM(whatever) AS [Total]
FROM table
GROUP BY ID
HAVING SUM(whatever) > 100000.00
ORDER BY ID

答案 1 :(得分:1)

如果您搜索此问题,您将得到答案。这是其中之一

  

HAVING只能用于SELECT语句。 HAVING通常用于GROUP BY子句。当不使用GROUP BY时,HAVING的行为类似于WHERE子句。

Reference

答案 2 :(得分:1)

WHERE用于根据条件过滤查询结果。

HAVING用于对聚合函数的结果应用过滤器。如果没有聚合函数,它的功能与WHERE相同。