不知道大家在使用MySQL的过程中,有没有认真思考或者留意过一个问题,MySQL的执行顺序到底是如何执行的呢?或许很多人没有过多在意这个问题,甚至没有这方面的认知。
本猿就在这里整理一下:
MySql语句的编写顺序
SELECT
DISTINCT
FROM
JOIN
ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT(Oracle没有)
MySql的执行顺序
行过滤
FROM a,b(计算笛卡尔积,列数相加,行数相乘)
ON 创建vt_1(虚拟表)
WHERE 条件过滤
GROUP BY
HAVING
列过滤
SELECT
DISTINCT(去重)
ORDER BY(排序)
LIMIT(分页)
Oracle的执行顺序
Oracle where条件 : 执行顺序是从右到左(从后往前)
MySQL where条件: 执行顺序是从左往右(从前到后)