有关sql优化

放栗子。

首先我是查询省市区的,省市区都在一张表中,先查看原来运行比较慢的sql。

SELECT CAST(GROUP_CONCAT(`name`)AS CHAR) FROM(
SELECT `name` FROM sys_area WHERE INSTR(CONCAT(',', (SELECT parent_ids FROM sys_area WHERE id=areaId), ','), CONCAT(',', id, ',')) AND id !=1
UNION ALL
SELECT `name` FROM sys_area WHERE id=areaId) a

优化过之后的SQL

SELECT CONCAT(c.name,',',b.name,',',a.`name`) FROM sys_area a,sys_area b,sys_area c WHERE a.id = areaId AND a.`parent_id`=b.`id` AND b.`parent_id`=c.`id`

你可能感兴趣的:(SQL优化)