mariadb CTE示例
生活随笔
收集整理的這篇文章主要介紹了
mariadb CTE示例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mariadb CTE示例
mariadb 自10.2.1支持CTE,至10.2.2后支持遞歸式CTE。Common Table Expression通用表達(dá)式簡稱CTE即類似于一個(gè)臨時(shí)表,可以引用子查詢里的結(jié)果集。
代碼部分:
CREATE TABLE `treenodes` (`seq` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增序列',`id` int(11) NOT NULL COMMENT '序號(hào)',`pid` int(11) DEFAULT NULL COMMENT '父序號(hào)',`text` varchar(4000) DEFAULT '文本內(nèi)容',PRIMARY KEY (`seq`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;INSERT INTO treenodes VALUES('1','1','0','張氏'); INSERT INTO treenodes VALUES('2','2','0','李氏'); INSERT INTO treenodes VALUES('3','3','1','張三1'); INSERT INTO treenodes VALUES('4','4','1','張三2'); INSERT INTO treenodes VALUES('5','5','2','張三3'); INSERT INTO treenodes VALUES('6','6','3','張三1后'); INSERT INTO treenodes VALUES('7','7','4','張三2后1'); INSERT INTO treenodes VALUES('8','8','4','張三2后2'); INSERT INTO treenodes VALUES('9','9','5','張三3后');-- 普通CTE WITH CTE AS ( SELECT * FROM treenodes WHERE id=1 UNION SELECT * FROM treenodes WHERE id=2 ) SELECT * FROM CTE/* seq id pid text 1 1 0 張氏 2 2 0 李氏 */-- 遞歸式CTE(檢索id為1的所有子孫) WITH recursive cte AS ( SELECT * FROM treenodes WHERE id=1 UNION ALL SELECT T.* FROM treenodes T JOIN cte ON T.pid=cte.id ) SELECT * FROM CTE;/* seq id pid text 1 1 0 張氏 3 3 1 張三1 4 4 1 張三2 6 6 3 張三1后 7 7 4 張三2后1 8 8 4 張三2后2 */執(zhí)行結(jié)果:
見代碼處注釋
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的mariadb CTE示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理财买基金风险大吗 不同类型基金有差别
- 下一篇: 美股三大指数集体收跌 特斯拉市值跌超3