MySQL 基础问题咨询

2021-01-14 15:52:38 +08:00
 uselessVisitor

起因是复习 MySQL 基础知识

看到这样一篇文章 由于是某 dn 这里只放截图

按照他说的执行顺序,想到是不是 MySQL 执行时候代码验证也是这个顺序?

做了下实验

表结构如下

当 FROM 的表存在,但是字段不存在、并且 WHERE 条件的字段也是不存在是谁先报错
select a
from truck
where b = '0';

结果如图

可以看到是先判断的field list

那这样不就和执行顺序相违背了?

这里想问一下,这里的判断是属于 SELECT还是FROM

1173 次点击
所在节点    MySQL
3 条回复
love2020
2021-02-05 16:20:25 +08:00
sql 执行流程中,有一步是 sql 解析,判断 sql 语法是否正确、字段是否正确。 你所说的顺序是执行 sql 的时候,肯定先 from 获取数据源,然后条件获取数据,最后在 select 。
你要理解一条 sql 执行的流程是很多步的。建立链接、缓存、分析、优化、执行 --最后才到存储引擎。
love2020
2021-02-05 16:21:07 +08:00
你给的顺序的 sql 语法顺序而已。
uselessVisitor
2021-02-05 17:11:36 +08:00
@love2020 十分感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX