Mysql中having篩選
阿新 • • 發佈:2018-12-20
Mysql中where和having(篩選)的區別: 下面是mysql中的select查詢語句: mysql> select sname,(age-sno) as a from student; +--------+------+ | sname | a | +--------+------+ | 換換 | 22 | | 劉麗 | 20 | | NULL | 6 | | 張友 | 17 | +--------+------+ 4 rows in set (0.00 sec) mysql> select sname,(age-sno) as a from student where a > 10; ERROR 1054 (42S22): Unknown column 'a' in 'where clause' 注意:程式設計中任何的查詢結果都可以作為變數使用,mysql中也通用. 當使用where條件匹配是報錯,區別: where查詢針對的是磁碟,“select sname,(age-sno) as a from student where a > 10;” where之前的select查詢結果也就是“a”的值會臨時存放在記憶體中,後續的where條件匹配時磁碟資料庫中沒有“a”列,匹配不到就會報錯. 使用having查詢過濾匹配: mysql> select sname,(age-sno) as a from student having a > 10; +--------+------+ | sname | a | +--------+------+ | 換換 | 22 | | 劉麗 | 20 | | 張友 | 17 | +--------+------+ 3 rows in set (0.00 sec) 注意:having的條件匹配是針對記憶體中的結果集.