mysql查询语句执行顺序

查看:89
本文介绍了mysql查询语句执行顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

问一下第三个sql语句为什么是先计算了(select count(*) from test)这个,在计算select count(*) from test where Ztype='2',最后在相减,这个执行顺序原理不是很懂(有文档可以参考吗,搜索关键字也不知道怎么找)。请指教。
谢谢

解决方案

执行顺序 from -> where -> group by -> select
至于完整的顺序,自己搜下mysql执行顺序。
分析下,
from test,先查找test这个表
where Ztype='2' 开始过滤表
select 开始遍历这个表的每一行
遍历的同时,由于你select中含有(select count(*) from test)这个查询,因此每遍历一行就会去计算一次,只不过你select中含有count聚合函数,最后只显示一行。

很好理解的,mysql怎么去查询数据,当然先要找到表(from),需要过滤的先过滤(where),过滤完当然要遍历给你显示出来(select),只不过你在select的时候,多查了一个不属于本表的字段,mysql就像递归一样,先去把它查出来显示

这篇关于mysql查询语句执行顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆