mariadb CTE示例
生活随笔
收集整理的這篇文章主要介紹了
mariadb CTE示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mariadb CTE示例
mariadb 自10.2.1支持CTE,至10.2.2后支持遞歸式CTE。Common Table Expression通用表達式簡稱CTE即類似于一個臨時表,可以引用子查詢里的結果集。
代碼部分:
CREATE TABLE `treenodes` (`seq` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增序列',`id` int(11) NOT NULL COMMENT '序號',`pid` int(11) DEFAULT NULL COMMENT '父序號',`text` varchar(4000) DEFAULT '文本內容',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 */執行結果:
見代碼處注釋
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的mariadb CTE示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理财买基金风险大吗 不同类型基金有差别
- 下一篇: 线性代数之行列式基础点