mysql下如何删除本节点下的所有子节点小记

在开发过程中,经常会遇到树形结构的数据,在删除某个节点时候其所有的子节点都要被删除,可以使用如下方法:

1.添加记录该节点所有父节点的ID的字段(parent_ids),并用逗号隔开(一定是逗号),如1,2,3

2.删除时使用find_in_set 函数,如:id=#{当前节点ID} and find_in_set(#{当前节点ID},parent_ids)

原文地址:https://www.cnblogs.com/wangxulong/p/8541600.html

时间: 2024-07-31 16:20:28

mysql下如何删除本节点下的所有子节点小记的相关文章

树形结构根据某节点查询本节点及下属所有子节点的递归实现

数据表中CompanyId,ParentCompany,有层级关系,树形结构根据某节点查询本节点及下属所有子节点的递归实现如下: public string ids = ""; /// <summary> /// 根据CompanyId 查找到子单位id /// </summary> /// <param name="companyId"></param> /// <returns></returns

easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网上百度了很多资料,都没有完全符合自己业务场景的,所以就自己动手写咯. 先说一下自己的业务需求: 1.选中节点,上级以及所有直系上级节点自动选中,所有下级子孙节点全部自动选中: 2.取消选择节点,如果兄弟节点都未选择,则上级以及所有直系上级节点自动取消选择,所有下级子孙节点全部取消选中. 这里说一下c

Linux系统下快速删除某个目录下大量文件

不管是哪个操作系统,同一级目录存在太多的文件都是一件可怕的事情,不管是读取还是删除的时候. 一旦这种不幸的事情发生在你身上,而又不能完全把整个目录删掉怎么办呢? 你可以用 rm -f *.log 但是你马上就会收到一个出错信息:参数列表太长 一个小时以前我一直还是缩小通用匹配符的范围,例如我依次的执行 rm -f a*.log rm -f b*.log ...... 非常费劲,如果这样还不行可以还要继续细化通配符,这样要删除所有log文件可能需要一整天时间. 废话那么多,其实只需要一个命令就可以

删除父节点同时删除该节点上的所有子节点(oracle)

id  path  pid 1     /a       0 2     /b       1 3     /c        1 4     /d        2 5      /e       4 那么我想删除掉id为2的所有节点和子节点孙节点 delete from aa where id in (select id from aa start with id=2 connect by prior id=pid)

Mysql 通过父节点ID获取所有子节点数据函数

BEGIN DECLARE sTemp text; DECLARE sTempChd text; SET sTemp = '$'; SET sTempChd =cast(rootId as CHAR); WHILE sTempChd is not null DO SET sTemp = concat(sTemp,',',sTempChd); SELECT group_concat(deptId) INTO sTempChd FROM ch_class where FIND_IN_SET(dept

insertBefore()指定的已有子节点之前插入新的子节点

定义: insertBefore() 方法在您指定的已有子节点之前插入新的子节点. 语法: 父级.insertBefore(新的子节点,指定的已有子节点) 实例: <input id="txt1" type="text"/> <input id="btn1" type="button" value="创建li"/> <ul id="ul1"> <

js中创建html标签、加入select下默认的option的value和text、删除select元素节点下全部的OPTION节点

<pre name="code" class="java"> jsp 中的下拉框标签: <s:select name="sjx" id="sjx" list="sjxList" listKey="BM" listValue="MC" size="20" cssStyle="width:100%;height:70px;

Win8下彻底删除mysql。

停止MySQL 1添加删除程序中卸载MySQL 2到安装目录删除MySQL 3删除:C:\Documents and Settings\All Users\Application Data\MySQL  C:\ProgramData\MySQL 4查看注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services HKEY_LOCAL_MACHIN

链表:在不给出整个链表头结点的情况下,删除单链表中的某个节点

问题描述: 有一个包含int型节点值的单链表,给定一个链表中的节点node,但不给定整个链表的头结点,删除链表中的某个结点. 算法实现: class Node { public int value; public Node next; public Node(int value) { this.value = value; } } public void removeWiredNode(Node node) { if(node == null) { return; } Node next = n