SQL处理多级分类,查询结果呈树形结构
SQL 处理 查询 结构 结果 分类 树形 多级
2023-06-13 09:14:35 时间
这样处理的弊端是:如果数据量大,子分类很多,达到4级以上,这方法处理极端占用数据库连接池
对性能影响很大。
如果用SQL下面的CTE递归处理的话,一次性就能把结果给查询出来,而且性能很不错
比用程序处理(数据量很大的情况),临时表性能更好,更方便
复制代码代码如下:
对性能影响很大。
如果用SQL下面的CTE递归处理的话,一次性就能把结果给查询出来,而且性能很不错
比用程序处理(数据量很大的情况),临时表性能更好,更方便
withareaas(
select*,idpx,cast(idasnvarchar(4000))px2fromregionwhereparentid=0
unionall
selecta.*,b.px,b.px2+ltrim(a.region_id)fromregionajoinareabona.parentid=b.id
)select*fromareaorderbypx,px2
可以查询出结果—-所有分类及相应分类下子分类
idtitleparentid
1广东省0
2广州1
3白云区2
4深圳1
5湖南省0
6长沙5
7株洲5
withareaas(
select*fromregionwhereparentid=1
unionall
selecta.*fromregionajoinareabona.parentid=b.id
)select*fromarea
可以查询出结果—-指定分类及相应分类下子分类
idtitleparentid
1广东省0
2广州1
3白云区2
性能分析:
对于一个3500条地区记录的数据表,其中有省,市,县3级
查询用时要1秒,视觉上感觉有点点慢,但不影响
数据量不大的分类,使用绝对无压力
相关文章
- 2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+
- SQL开发知识:关于表oracle的一些特殊查询sql语句
- ORA-55639: Flashback Data Archive internal SQL error ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-010380; Symbol: ER_SLAVE_SQL_THREAD_STOPPED_GAP_TRX_PROCESSED; SQLSTATE: HY000 报错 故障修复 远程处理
- ORA-13802: failed to purge SQL Tuning Base entry from sql$ ORACLE 报错 故障修复 远程处理
- mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法详解数据库
- MySQL动态SQL:实现动态查询的高效方式。(mysql动态sql)
- MySQL如何导入SQL文件(mysql怎么导入sql文件)
- 掌握Oracle动态SQL拼接技巧,实现查询性能优化(oracle动态sql拼接)
- MSSQL导出SQL文件的简易方法(mssql导出sql文件)
- 实现Oracle数据库分页查询的SQL示例(oracle分页sql)
- 防止mysql SQL注入攻击的措施(Mysql的sql注入)
- MySQL存储SQL语句,轻松和高效!(mysql存储sql语句)
- 深入浅出:使用Redis替代SQL查询(redis实现sql查询)
- 合并从MySQL中组合多条SQL语句(mysql多条sql)
- MySQL之SQL文件处理浅解(mysqlsql文件)
- 语句SQL Server中使用IN语句处理多值查询(sqlserver中in)
- 查询使用MSSQL对多表进行复杂SQL查询(sql mssql 多表)
- Oracle分页查询的高效SQL语句研究(oracle分页查询sql语句)
- 使用SQL语句查询Redis数据库的操作方法(sql语句查询redis)
- MySQL查询父子级关系的SQL语句(mysql 上下级sql)
- 查询Oracle数据库也支持SQL查询(oracle也支持sql)
- chOracle中SQL并发处理管理策略(oracle中sql并发)
- Oracle SQL分行技能实现高效管理(oracle sql分行)
- Oracle SQL传参精准实现数据查询(oracle sql传参)
- SQL复合查询条件(AND,OR,NOT)对NULL值的处理方法