从sql运行的角度来说,where是从磁盘中的库中一条一条的取数据,然后对这一条条的数据进行判断,符合则把此条数据放入到内存中,不符合where条件则直接抛弃,然后对select的字段都是从内存中的数据取的。而having则是在group by,group by 则是在where之后进行的操作,由此可以判断,group by是对内存中的数据进行分组,having是对分组完的数据进行判断,这也是在where中不能用select字段的别名,而having能用别名的原因。
MySQL where和having的区别
最新推荐文章于 2023-10-02 15:34:12 发布