1.MySQL关键字顺序
书写顺序
select
distinct
from
join
on
where
group by
having
union (all)
order by
limit
执行顺序
from
on
join
where
group by
having
select
distinct
union (all)
order by
limit
说明:Mysql会先执行from,然后根据on关键字去筛选目标表,筛选出的结果再进行join,这样就会形成一个临时表。然后去执行where条件去筛选这个临时表,这样基本就筛选出需要的数据了。然后就可以对数据进行group by进行分组,同时若是有必要就会再执行having对数据进行进一步筛选,这里执行完数据基本就是一定定型了,下面就需要select去筛选目标列了,完事之后需要使用distinct进行去重这样一个表的查询基本就结束了。若是需要多表查询则还需要使用union或者union all来进行连接多表的结果。然后就是对数据进行排序的order by ,排完顺序自然就是取分页了。
实操代码:
SELECT name ,age FROM t_sys_user WHERE age> 10 GROUP BY age HAVING COUNT(age) > 1 ORDER BY age DESC LIMIT 10 OFFSET 20;