一、根据父查询子

1、sql实现

SELECT GROUP_CONCAT(id) id FROM (SELECT t1.*,IF(FIND_IN_SET(parentid, @pids) > 0, @pids := CONCAT(@pids, ',', id), '0') AS ischildFROM (SELECT * FROM test ORDER BY id ASC) t1,(SELECT @pids := '变量父ID') t2
) t3 WHERE ischild != '0'

需修改的变量:id:主键id、parentid:父id、test:表名。

2、函数实现

2.1、创建函数

CREATE DEFINER=`bd_db_admin`@`%` FUNCTION `getChildId`(`pId` bigint) RETURNS varchar(4000) CHARSET utf8
BEGIN#Routine body goes here...DECLARE ids VARCHAR(4000);DECLARE childId VARCHAR(4000);SET ids = '$';SET childId = CAST(pId AS CHAR);WHILE childId is NOT NULL DOSET ids = CONCAT(ids,',',childId);select GROUP_CONCAT(id) INTO childId FROM test WHERE FIND_IN_SET(parentid,childId)>0;END WHILE;RETURN ids;
END

2.2、使用

select getChildId(122)

二、根据子id查询父id

SELECT t2.* FROM ( SELECT @r AS _id,  (SELECT @r := parentid FROM test WHERE id = _id) AS parentid, @l := @l + 1 AS lvl FROM (SELECT @r := '要查询的ID', @l := 0) vars, testWHERE @r <> 0
) t1 JOIN test t2 ON t1._id = t2.id
ORDER BY t1.lvl DESC

需修改的变量: id:主键、parentid:父id、test:表名。

欢迎关注

MySQL父查询子、子查询父相关推荐

  1. mysql查询父id下所有子id,或者通过子id查询所有父id到最上层

    文章目录 前言 一.通过父id查询所有子id 1.数据库 2.查询语句 3.SQL解释 二.通过子id查询父id到根节点 1.查询语句 总结 前言 显示实现通过父id查询所有子id数据:第二部分同子i ...

  2. SQL server 根据子级查询根父级

    小编做惯了根据父级查子级,可是怎么也没想到有一天会遇到根据子级查根父级这种需求,小编起初想通过C#,但是小编最后并没有做到合适的方法,那小编只能通过SQL server的方式来解决了 推算历程一: w ...

  3. Oracle递归查询(查询当前记录所有父级或子级)

    Oracle递归查询(查询当前记录所有父级或子级) 向上递归查询 所有上级 元数据: 1 2 3 4 SELECT * FROM ORGANIZE START WITH PARENT_ID = '14 ...

  4. 一个oracle从子节点向父节点查询的问题

    今天部门内一个人问我,在oracle中如何从子节点记录向父节点上溯.比如有一个表: guid            parentguid 1 0 2 1 3 1 4 2 5 2 6 5 7 5 8 7 ...

  5. mysql子查询日期比较_数据分析系列 16/32 | MySQL中子查询与联合查询

    前面说了很多MySQL中的查询,比如条件查询.分组聚合查询.连接查询,今天来说一下另外两个非常的重要的查询,MySQL中的子查询和联合查询. PART01 子查询 子查询也称嵌套查询,是将一个查询语句 ...

  6. mysql分组查询和子查询语句_6.MySQL分组聚合查询,子查询

    自己的MySQL阅读笔记,持续更新,直到看书结束. 数据库技术可以有效帮助一个组织或者企业科学.有效的管理数据,也是现在很多企业招聘数据分析师的必备要求之一. 大家如果看过MySQL的书,也可以看我的 ...

  7. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  8. mysql求和 子查询_MYSQL 查询方法 统计查询 链接查询 子查询

    mysql表格查询方法: 查询: 1.简单查询 select * from Info --查所有数据 select Code,Name from Info --查指定列的数据 select Code ...

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

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

  10. mysql怎么子查询_在mysql中如何进行子查询?

    在mysql中,子查询是指将一个查询语句嵌套在另一个查询语句中,可以在SELECT.UPDATE和 DELETE语句中配合WHERE子句进行实现,WHERE子句中语法格式为"WHERE (另 ...

最新文章

  1. shell的相关知识(变量、脚本定义)
  2. 【数字信号处理】线性常系数差分方程 ( 使用 matlab 求解 “ 线性常系数差分方程 “ 示例 | A 向量分析 | B 向量分析 | 输入序列分析 | matlab 代码 )
  3. hdu-4089-Activation-概率dp
  4. SAP修改已经释放的请求
  5. idea下mapreduce的wordcount
  6. Python(9):函数
  7. 扩容是元素还是数组_Java中对数组的操作
  8. 阿里云CDN技术掌舵人文景:相爱相杀一路狂奔的这十年
  9. 华为nova9系列正式官宣:9月23日震撼上市
  10. 【lucene】lucene高亮显示
  11. oracle 12.2.0.1 使用 active dataguard broker 之二 switchover
  12. linux 串口监视工具_监视Linux的最佳工具
  13. 直播系统源码,直播系统源码, 直播app系统源码
  14. 变频器的工作原理与结构介绍
  15. 练习:用swiper实现图片滑动
  16. Python+Appium自动化测试-通过坐标定位元素
  17. RESTE MASTER和reset slave
  18. 网站防篡改有什么方法
  19. https之证书验证
  20. 办公室装修设计与环保理念

热门文章

  1. notebook pip install 只有星号_什么人不能种生基?什么人适合于做?只有这篇文章最清楚了!...
  2. vue2.0生命周期数据共享
  3. ARCGIS中坐标转换及地理坐标、投影坐标的定义
  4. 最简单DIY基于ESP32CAM的物联网相机系统⑥(用上位机VS2013 MFC实现WIFI图传)
  5. 基于gibbsLDA的文本分类
  6. ehvierwer登录与不登录_【更新】亿寻—免登录不限速下载百度网盘
  7. 页面可视化搭建工具技术要点
  8. 张凯龙 西北工业大学计算机学院,张凯龙的个人主页-西北工业大学教师个人主页...
  9. c c++ 信息服务查询服务器
  10. mysql查询笔记_MySQL学习笔记(一):查询