where与having非常类似.都能筛选数据.表达式完全一致.
但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次
筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。
where筛选从磁盘的数据库中筛选后临时保存在内存中,然后having负责继续筛选.也就是说能用where的地方一定都能用having,能用having的不一定能用where
尽管having也能处理where的任务,但是尽可能不要这样做,mysql官方是这样推荐的,或许是考虑性能