【MySql 使用递归函数时遇到的级联删除问题】教程文章相关的互联网学习教程文章

Mysql 递归查询

这是一个简单的案例按照记录操作一遍大致上就能明白流程了 CREATE TABLE `t_areainfo` ( `id` INT(11) AUTO_INCREMENT, `level` INT(11) DEFAULT ‘0‘, `name` VARCHAR(255) DEFAULT ‘0‘, `parentId` INT(11) DEFAULT ‘0‘, `status` INT(11) DEFAULT ‘0‘, PRIMARY KEY (`id`)) DEFAULT CHARSET=utf8; INSERT INTO `t_areainfo` VALUES (‘1‘, ‘0‘, ‘中国‘, ‘0‘, ‘0‘);INSERT INTO `t_areainfo` VALUES (‘2‘, ...

MySql 递归查询【代码】【图】

MySql 递归查询一、递归语句-- 向下递归函数SELECT GROUP_CONCAT(‘‘‘‘, pk_dept , ‘‘‘‘) FROM rzzxdb.bi_dept WHERE FIND_IN_SET(fr_pk_dept,‘1070‘)>0;结果:二、自定义递归函数利用find_in_set()函数和group_concat()函数实现递归查询:1,向下递归:DROPFUNCTIONIFEXISTS queryChildrenAreaInfo; CREATEFUNCTION queryChildrenAreaInfo(areaId INT) -- 或者 areaId char RETURNSVARCHAR(4000) BEGINDECLARE sTemp VA...

MySQL递归的替代方案

类似查出某个机构下所有的子机构,可用递归的方式实现。但MySQL不支持递归,可以考虑用如下的方式来实现递归调用。 第一种,临时表方式,使用函数每次查出子机构,再可以和其他表联查。 第二种,新建一张表,列举出机构和子机构的关系,适合于机构数量不多的情况。 第三种,较为通用的情况。使用hierarchy,例如部级机构01,02...,省级机构01-01,02-01...,市级机构01-01-02,... 查询某个省下的所有...

MySql 使用递归函数时遇到的级联删除问题【代码】

以下两段SQL的写法看似相同,结果效果却是不同的写法A:DELETE OM_ORGANIZATION, OM_POSITION FROM OM_ORGANIZATION LEFTJOIN OM_POSITION ON OM_POSITION.ORG_ID = OM_ORGANIZATION.ORG_ID WHERE FIND_IN_SET(OM_ORGANIZATION.ORG_ID,OM_ORGANIZATION_QUERY_CHILDREN (‘52037b7c-0f01-41f6-849f-4f99ad8f2422‘) )这个写法是不正确的,先来介绍一下这个OM_ORGANIZATION_QUERY_CHILDREN 函数BEGINDECLARE sTemp VARCHAR(4000); DE...

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

简介:mysql5.0.94版本,该版本以及较高级的版本(5.5、6等等)尚未支持循环递归查询,和sqlserver、oracle相比,mysql难于在树状表中层层遍历的子节点。本程序重点参考了下面的资料,写了两个sql存储过程,子节点查询算是照搬了,父节点查询是逆思维弄的。 表结构和表数据就不公示了,查询的表user_role,主键是id,每条记录有parentid字段(对应该记录的父节点,当然,一个父节点自然会有一个以上的子节点嘛) 复制代码 代码如下...

小猿圈之MySql递归查询【代码】

不管学习什么语言,python、java、php等等如果你以后的方向是web,那么你都离不开数据库,mysql数据库又是开源的,所以是最受欢迎的数据库,也是企业用的最多的数据库,小猿圈老师详解mysql的递归查询,不懂的同学可以看过来了。一、递归语句-- 向下递归函数SELECT GROUP_CONCAT(‘‘‘‘, pk_dept , ‘‘‘‘) FROM rzzxdb.bi_dept WHERE FIND_IN_SET(fr_pk_dept,‘1070‘)>0; 设置某个部门下的所有子部门为无效:update bi_dept...

mysql递归查询【代码】【图】

find_in_set 函数函数语法:find_in_set(str,strlist)str 代表要查询的字符串 , strlist 是一个以逗号分隔的字符串,如 (‘a,b,c‘)。此函数用于查找 str 字符串在字符串 strlist 中的位置,返回结果为 1 ~ n 。若没有找到,则返回0。 concat:它用于连接N个字符串 concat_ws :concat 是以逗号为默认的分隔符,而 concat_ws 则可以指定分隔符,第一个参数传入分隔符,如以下划线分隔。 group_concat:可以分组的同时,把字...

使用函数递归实现基于php和MySQL的动态树型菜单

树型菜单在很多桌面应用系统中都有非常广泛的应用,其主要优点是结构清晰,利于使用者非常清楚的知道目前自己所在的位置。但在web上树型菜单的应用因为没有理想的现成组件可以拿过来直接使用,所以一般的情况下,程序员主要是通过JavaScript来实现一些简单的树型结构菜单,但这些菜单往往都是事先定好各菜单项目,以及各菜单项目之间的层次关系,不利于扩充,一旦需要另一个菜单结构时,往往还需要重新编写,因此使用起来不是很方便...

PHP递归写入MySQL实现无限级分类数据操作示例_php技巧

这篇文章主要介绍了PHP递归写入MySQL实现无限级分类数据操作,涉及mysql数据库的创建以及php递归写入、读取数据库分类相关操作技巧,需要的朋友可以参考下本文实例讲述了PHP递归写入MySQL实现无限级分类数据操作。分享给大家供大家参考,具体如下:PHP递归写入MySQL无限级分类数据,表结构:CREATE TABLE `kepler_goods_category` (`id` int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,`parentid` int unsigned NOT NULL default...

使用函数递归实现基于php和MySQL的动态树型菜单_PHP教程【图】

树型菜单在很多桌面应用系统中都有非常广泛的应用,其主要优点是结构清晰,利于使用者非常清楚的知道目前自己所在的位置。但在web上树型菜单的应用因为没有理想的现成组件可以拿过来直接使用,所以一般的情况下,程序员主要是通过JavaScript来实现一些简单的树型结构菜单,但这些菜单往往都是事先定好各菜单项目,以及各菜单项目之间的层次关系,不利于扩充,一旦需要另一个菜单结构时,往往还需要重新编写,因此使用起来不是很方便...

使用"函数递归"实现基于php和MySQL的动态树型菜单_PHP教程

树型菜单在很多桌面应用系统中都有非常广泛的应用,其主要优点是结构清晰,利于使用者非常清楚的知道目前自己所在的位置。但在web上树型菜单的应用因为没有理想的现成组件可以拿过来直接使用,所以一般的情况下,程序员主要是通过JavaScript来实现一些简单的树型结构菜单,但这些菜单往往都是事先定好各菜单项目,以及各菜单项目之间的层次关系,不利于扩充,一旦需要另一个菜单结构时,往往还需要重新编写,因此使用起来不是很方便...

函数递归实现php和MySQL动态树型菜单_PHP教程

树型菜单在很多桌面应用系统中都有非常广泛的应用,其主要优点是结构清晰,利于使用者非常清楚的知道目前自己所在的位置。但在web上树型菜单的应用因为没有理想的现成组件可以拿过来直接使用,所以一般的情况下,程序员主要是通过JavaScript来实现一些简单的树型结构菜单,但这些菜单往往都是事先定好各菜单项目,以及各菜单项目之间的层次关系,不利于扩充,一旦需要另一个菜单结构时,往往还需要重新编写,因此使用起来不是很方便...

php+mysql不用递归实现的无限级分类实例(非递归),mysql递归_PHP教程【图】

php+mysql不用递归实现的无限级分类实例(非递归),mysql递归 要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的 本文还是通过数据库的设计,用一句sql语句实现 数据库字段大概如下:代码如下:id 编号 fid 父分类编号 class_name 分类名 path 分类路径,以 id 为节点,组成类似 ,1,2,3,4, 这样的字符串 可以假设有如下的数据:代码如下: id fid class_name path 1...

mysql如何实现递归查询数据?

不用存储过程,不写函数,如何实现?求大神们指教... 回复讨论(解决方案) mySQL 没有 WITH 命令,所以 不用存储过程,不写函数 就不可能实现 只有支持 WITH 命令的 oracle 和 sqlserver 可以在命令级实现递归查询 可以变相实现的,想了一下午相出来了。。。 可以变相实现的,想了一下午相出来了。。。 怎么实现的呢?

php+mysql无限分类设计方法,非递归

php+mysql无限分类设计方法,非递归 基本原理就是先将数据按照父、子的方式查询出来,这时候的数据已经有了层级关系但是显示的话就需要再做一些处理了,abspath里面的‘-’号越多,代表层级越深,这时候可以根据里面的‘-’的多少,在这个分类的前面加上对应的空格,这样层级关系就展现出来了。建立表CREATE TABLE IF NOT EXISTS `category` (`id` int(11) NOT NULL AUTO_INCREMENT,`catpath` varchar(255) DEFAULT NULL,`name` va...