校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > MySql8 WITH RECURSIVE遞歸查詢父子集的方法

MySql8 WITH RECURSIVE遞歸查詢父子集的方法

熱門標簽:地圖標注被騙三百怎么辦 沃克斯電梯外呼線路圖 常州電銷外呼系統一般多少錢 400電話鄭州申請 福州呼叫中心外呼系統哪家好 天智外呼系統 云南語音外呼系統平臺 房產智能外呼系統品牌 北京人工外呼系統價錢

背景

開發過程中遇到類似評論的功能是,需要時用查詢所有評論的子集。不同數據庫中實現方式也不同,本文使用Mysql數據庫,版本為8.0

  • Oracle數據庫中可使用START [Param] CONNECT BY PRIOR
  • Mysql 中需要使用 WITH RECURSIVE

需求

找到name為張三的孩子和孫子,pid為當前記錄的父id,如張三兒子的pid為張三的id,以此類推。

引入

計算1到100的累加的結果。
WITH RECURSIVE t(n) AS ( //t為我們結果表,n為字段,可以只指定表明不指定字段
  VALUES (1) //遞歸的開始,此時可理解為t表字段n只有一條記錄 1
 UNION ALL
  SELECT n+1 FROM t WHERE n  100   
  /*這里產生的結果為 2 ,此時t表的字段n有兩條記錄分別為1,2
  *				 3
  *         ...
  *         100
  */													  
)
SELECT sum(n) FROM t; //對字段n求和

父求子

WITH RECURSIVE temp AS ( // 將結果表命名為temp
	SELECT * FROM resource r WHERE r.name ='張三' //查詢出父id這條記錄,此時這條記錄已存在temp表中 ,如圖1-1
	UNION ALL
	/*這時要注意,下面這條sql是獲取的期望結果中的后兩條記錄(不包含第一條)
	*注意where后的條件,我們使用temp表中的唯一一條記錄的id關聯resource表中的pid
	*僅當temp第一條記錄匹配不到resource表中的pid時才會對temp的第二條記錄id進行匹配
	*/
	SELECT r.* FROM resource r,temp t WHERE t.id = r.pid
)select * from temp

子查父

WITH recursive temp AS (
	SELECT * FROM resource r WHERE r.name ='張三孫子'
	UNION ALL
	//已知的是子集,所以我們需要通過temp的pid匹配resource的id
	SELECT r.* FROM resource r,temp t WHERE t.pid = r.id
)select * from temp

到此這篇關于MySql8 遞歸查詢父子集的方法的文章就介紹到這了,更多相關MySql8 遞歸查詢父子集內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql視圖之確保視圖的一致性(with check option)操作詳解
  • 安裝mysql出錯”A Windows service with the name MySQL already exists.“如何解決
  • MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated錯誤
  • MySQL錯誤TIMESTAMP column with CURRENT_TIMESTAMP的解決方法
  • MySQL提示:The server quit without updating PID file問題的解決辦法
  • php SQL Injection with MySQL
  • MySQL8.0的WITH查詢詳情

標簽:拉薩 鹽城 移動 黔東 珠海 沈陽 徐州 沈陽

巨人網絡通訊聲明:本文標題《MySql8 WITH RECURSIVE遞歸查詢父子集的方法》,本文關鍵詞  MySql8,WITH,RECURSIVE,遞歸,查詢,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySql8 WITH RECURSIVE遞歸查詢父子集的方法》相關的同類信息!
  • 本頁收集關于MySql8 WITH RECURSIVE遞歸查詢父子集的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 皋兰县| 肃宁县| 泾川县| 湖州市| 苍溪县| 临武县| 项城市| 阿鲁科尔沁旗| 喀喇沁旗| 汾阳市| 浪卡子县| 潮州市| 宽城| 赞皇县| 轮台县| 建湖县| 洪江市| 临漳县| 普定县| 化德县| 五莲县| 井研县| 湄潭县| 长顺县| 兴海县| 宁德市| 当涂县| 潜山县| 三江| 蓝田县| 崇义县| 喀喇| 嘉定区| 双峰县| 淮北市| 怀化市| 巧家县| 安顺市| 兴义市| 林甸县| 宣威市|