1、创建表:

DROP TABLE IF EXISTS `t_areainfo`;

CREATE TABLE `t_areainfo` (

`id` int(11) NOT '' AUTO_INCREMENT,

`level` int(11) DEFAULT '',

`name` varchar(255) DEFAULT '',

`parentId` int(11) DEFAULT '',

`status` int(11) DEFAULT '',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;

2、初始数据:

INSERT INTO `t_areainfo` VALUES ('', '', '中国', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '华北区', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '华南区', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '海淀区', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '丰台区', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '朝阳区', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区1', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区2', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区3', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区4', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区5', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区6', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区7', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区8', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区9', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区10', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区11', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区12', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区13', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区14', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区15', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区16', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区17', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区18', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区19', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区1', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区2', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区3', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区4', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区5', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区6', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区7', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区8', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区9', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区10', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区11', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区12', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区13', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区14', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区15', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区16', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区17', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区18', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', '北京XX区19', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省1', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省2', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省3', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省4', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省5', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省6', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省7', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省8', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省9', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省10', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省11', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省12', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省13', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省14', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省15', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省16', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省17', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省18', '', '');

INSERT INTO `t_areainfo` VALUES ('', '', 'xx省19', '', '');

3、向下递归:

利用find_in_set()函数和group_concat()函数实现递归查询:

DROP FUNCTION IF EXISTS queryChildrenAreaInfo;

CREATE FUNCTION queryChildrenAreaInfo(areaId INT)

RETURNS VARCHAR(4000)

BEGIN

DECLARE sTemp VARCHAR(4000);

DECLARE sTempChd VARCHAR(4000);

SET sTemp='$';

SET sTempChd = CAST(areaId AS CHAR);

WHILE sTempChd IS NOT NULL DO

SET sTemp= CONCAT(sTemp,',',sTempChd);

SELECT GROUP_CONCAT(id) INTO sTempChd FROM t_areainfo WHERE FIND_IN_SET(parentId,sTempChd)>0;

END WHILE;

RETURN sTemp;

END;

4、调用方式:

SELECT queryChildrenAreaInfo(1);

查询id为"4"下面的所有节点

SELECT * FROM t_areainfo WHERE FIND_IN_SET(id,queryChildrenAreaInfo(4));

5、向上递归:

DROP FUNCTION IF EXISTS queryChildrenAreaInfo1;

CREATE FUNCTION queryChildrenAreaInfo1(areaId INT)

RETURNS VARCHAR(4000)

BEGIN

DECLARE sTemp VARCHAR(4000);

DECLARE sTempChd VARCHAR(4000);

SET sTemp='$';

SET sTempChd = CAST(areaId AS CHAR);

SET sTemp = CONCAT(sTemp,',',sTempChd);

SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd;

WHILE sTempChd <> 0 DO

SET sTemp = CONCAT(sTemp,',',sTempChd);

SELECT parentId INTO sTempChd FROM t_areainfo WHERE id = sTempChd;

END WHILE;

RETURN sTemp;

END;

6、调用方式:

查询id为"7"的节点的所有上级节点:

SELECT * from t_areainfo where FIND_IN_SET(id,queryChildrenAreaInfo1(7));

包含mysql 递归查询父节点 和子节点

包含mysql 递归查询父节点 和子节点 mysql递归查询,查父集合,查子集合 查子集合 --drop FUNCTION `getChildList` CREATE FUNCTION `getChi ...

MySQL递归查询&lowbar;函数语法检查&lowbar;GROUP&lowbar;CONCAT组合结果集的使用

1-前言: 在Mysql使用递归查询是很不方便的,不像Sqlserver可以直接使用声明变量,使用虚拟表等等.如:DECLARE,BEGIN ...  END   ,WHILE ,IF 等等. 在My ...

MySQL递归查询树状表的子节点、父节点具体实现

mysql版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算 ...

递归的实际业务场景之MySQL 递归查询

喜欢就点个赞呗! 源码

MySQL递归查询

MySQL8.0已经支持CTE递归查询,举例说明 CREATE TABLE EMP (EMPNO integer NOT NULL, ENAME ), JOB ), MGR integer, HIRE ...

MySQL递归查询所有子节点,树形结构查询

--表结构 CREATE TABLE `address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_value` varchar(32) DEFAUL ...

MySQL递归查询树状表的子节点、父节点

表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段; 如下mysql查询函数即可实现根据一个节点查询所有的子节点,根据一个子节点查询所有的父节点.对于数据 ...

mysql 递归查询 主要是对于层级关系的查询

最近遇到了一个问题,在mysql中如何完成节点下的所有节点或节点上的所有父节点的查询?在Oracle中我们知道有一个Hierarchical Queries可以通过CONNECT BY来查询,但是,在 ...

MySQL递归查询父子节点

1.表结构 CREATE TABLE folder( id BIGINT(20) NOT NULL, parent_id BIGINT(20) DEFAULT NULL, PRIMARY KEY id ...

随机推荐

LR录制脚本IE不能打开解决方法

运行环境:win7 64位 解决方法:1.卸载IE11 2.计算机——属性——高级系统设置——性能里的设置——数据执行保护——选择“为除下列选定程序之外的所有程序和服务启用”——添加IE浏览器和VUG ...

js设计模式

http://www.csdn.net/article/2011-09-02/303983 阐明JavaScript设计模式.CSDN研发频道对此文进行了整理选取部分内容,供开发者学习.参考. 内容如 ...

CountDownLatch和CyclicBarrier的区别(转)

在网上看到很多人对于CountDownLatch和CyclicBarrier的区别简单理解为CountDownLatch是一次性的,而CyclicBarrier在调用reset之后还可以继续使用.那如 ...

openssl使用&plus;Demo

1. websiteSSL(secure Socket Layer)TLS(transport Layer Security) - SSL3.0基础之上提出的安全通信标准,目前版本是1.0openss ...

A Bug&&num;39&semi;s Life(种类并查集)(也是可以用dfs做)

http://acm.hdu.edu.cn/showproblem.php?pid=1829   A Bug's Life Time Limit:5000MS     Memory Limit:327 ...

VSCode插件MSSQL教程(昨天提了一下)

推荐一个跨平台SQL IDE:https://docs.microsoft.com/zh-cn/sql/sql-operations-studio/download 什么数据库都木有(系统自带的不算) ...

url全部信息打印

public String findAllContract(HttpServletRequest request,String a){ String string = new StringBuilde ...

sublime安装说明

安装Install package https://www.cnblogs.com/lixuwu/p/5693624.html 常用配置 Perference → Settings – User,用下 ...

split函数

b="aa,:bb:c,c"a1,a2,a3=b.split(":")  #以:为分隔符,分成3个字符串

kbmmw 中虚拟文件操作入门

kbmmw 中一直有一个功能,但是基本上都没有提过,但是在实际应用中,却非常有用,这个功能就是 虚拟文件包功能,他可以把一大堆文件保存到一个文件里面,方便后台管理. kbmmw 的虚拟文件在单元kbm ...

mysql省市区递归查询_mysql 递归查询相关推荐

  1. mysql根据父节点递归查询所有子节点

    mysql根据父节点递归查询所有子节点 在开发中,我们经常遇到通过父级节点查询所有子节点的需求,我们知道在mysql中我们可以自定义函数的方式来实现这个功能,但是自定义函数根据父节点递归查询所有子节点 ...

  2. mysql 汉编码 的选_peewee连接mysql汉语言数据编码_mysql

    peewee连接mysql中文数据编码 系统是win7 x64 python 2.7.6的site.py里面编码设定为 utf-8 py文件首行指定 #coding:utf-8 mysql 5.5.3 ...

  3. windows 新建mysql权限设置_Windows下设置MySQL安全权限_mysql

    注意:本文的内容涉及到修改NTFS磁盘权限和设置安全策略,请务必在确认您了解操作可能的后果之后再动手进行任何的修改. 文中提及的权限都是在原有权限上附加的权限. [修改步骤] 1.创建用户 创建一个名 ...

  4. mysql函数大全最小,MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  5. mysql checksum用法_MySQL checksum理解_mysql

    mysql checksum了解 在主从复制中Checksum常常需要对某些重要的表进行一致性检查. Checksum Table在逻辑备份时候前后是否可以用于验证数据一致性.扩展一下发现有一些有趣的 ...

  6. mysql ibata文件_重装系统后,怎么调用之前mysql的数据_mysql

    重装系统后,如何调用之前mysql的数据 前提是:必须保留之前的数据库数据 在介绍此方法之前,提醒各位最好的转移数据的方法为: 在原来MYSQL服务器导出SQL文件,然后再在新的MYSQL服务器导入数 ...

  7. mysql实现树形_Mysql实现树形递归查询

    最近在做项目迁移,Oracle版本的迁到Mysql版本,遇到有些oracle的函数,mysql并没有,所以就只好想自定义函数或者找到替换函数的方法进行改造. Oracle递归查询 oracle实现递归 ...

  8. mysql 递归查找父节点_MYSQL递归查询,根据子类ID查询所有父类(最全)

    数据表结构 id    name  parent_id 1        A        0 2        B        1 3        C        1 4        D   ...

  9. mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现

    简介:mysql5.0.94版本,该版本以及较高级的版本(5.5.6等等)尚未支持循环递归查询,和sqlserver.oracle相比,mysql难于在树状表中层层遍历的子节点.本程序重点参考了下面的 ...

  10. mysql 遍历 父子_mysql实现父子递归查询sql

    在很多业务场景中,我们需要从数据库查询一些树状结构的数据,多半以id,pid的形式存储记录. 在Oracle中,能够通过语法轻松实现父子级间的递归查询,无论到父,子,孙,曾孙等多少级,都能查出来. 但 ...

最新文章

  1. 1014 装箱问题 CODE[VS]
  2. Intellij idea workflow 工作流插件安装
  3. 基于PyTorch的GAN框架TorchGAN:用架构级API轻松定制GAN项目
  4. java布道师_初探第10代Java帝国:11位Java专家道出了他们最喜欢的功能
  5. finereport 登录界面的代码文件_【干货下载】多彩包含网页登录界面等4款WEB模板素材作品集源文件...
  6. 搭建hypervisor类型为VMWare的cloudstack环境
  7. VMWare下虚拟机ubuntu与宿主机windows文件共享
  8. 《Python Cookbook 3rd》笔记(2.11):删除字符串中不需要的字符
  9. android自动化持续集成,Android系统的持续集成自动化测试框架的研究与实践
  10. 信用评分python_信用评分卡模型在Python中实践(上)
  11. Java实现mysql的读写分离
  12. 计算机网络机房巡视表,机房巡查记录表.doc
  13. 大数据导论习题_2020高校邦《数据科学与大数据技术导论》课后作业习题答案...
  14. node_modules中的.cache文件夹的占用空间越来越大
  15. FTP服务器文件下载方法
  16. 计算机操作试题word,2015职称计算机考试Word2003操作试题及答案
  17. centos怎么把计算机调到桌面,CentOS下命令行和桌面模式的切换方法
  18. Virustotal——md5转sha256
  19. 基于Modis数据监测森林火灾
  20. 线性判别函数:感知器、松弛算法、Ho-Kashyap算法

热门文章

  1. Vue3+ts+vite 国际化处理
  2. 计算机耗材设备管理系统,云南省审计厅计算机耗材管理系统分析与设计
  3. 【工业机器人】全球工业机器人详细产业链梳理!
  4. Java从入门到进阶书单推荐|必收藏
  5. 牛顿迭代法的matlab程序,牛顿迭代法matlab程序
  6. 软件测试测试工具总结
  7. 浙大版c语言程序设计第三版答案
  8. xlsx文件打开乱码_Excel打开出现乱码的解法方法
  9. 解决unable to find a qt build,to solve this problem specify a qt build
  10. 如何使用Java进行网络爬虫