mysql> select 2-1 as a,password from mysql.user where user='root' having a>0; +---+-------------------------------------------+ | a | password | +---+-------------------------------------------+ | 1 | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +---+-------------------------------------------+ 1 row in set (0.00 sec) mysql> select 2-1 as a,password from mysql.user where user='root' having a>1; Empty set (0.00 sec) mysql>
只要区别就是:
where只对数据库里的所有数据进行查询
having只对结果集进行查询
数据库 --select--> ---where--> 结果 --having--> 结果