MySQL8 递归查询 正确用法 千万不能被CSDN、博 - Assbbs
MySQL8 递归查询 正确用法 千万不能被CSDN、博客园这类 垃圾 网站误导,全是互相抄袭的 错误 代码。 又一次经过半天反复测试,自己找到了正确的用法,之前卡住的程序可以继续写了…… 测试表: CREATE TABLE city t1 int 11 NOT NULL, t2 int 11 NOT NULL, tt int 1…
MySQL8 递归查询 正确用法 千万不能被CSDN、博客园这类 垃圾 网站误导,全是互相抄袭的 错误 代码。 又一次经过半天反复测试,自己找到了正确的用法,之前卡住的程序可以继续写了…… 测试表: CREATE TABLE city t1 int 11 NOT NULL, t2 int 11 NOT NULL, tt int 11 NOT NULL ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO city t1 , t2 , tt VALUES 1, 2, 3 , 3, 4, 5 , 5, 6, 7 , 7, 8, 9 ; 查询句: WITH RECURSIVE temp AS SELECT FROM city WHERE t1=1 AND t2=2 UNION ALL SELECT city. FROM city INNER JOIN temp WHERE city.t1=temp.tt AND city.t2=4 UNION ALL SELECT city. FROM city INNER JOIN temp WHERE city.t1=temp.tt AND city.t2=6 UNION ALL SELECT city. FROM city INNER JOIN temp WHERE city.t1=temp.tt AND city.t2=8 SELECT FROM temp; 易错点: 1. WITH 后面必须添加 RECURSIVE 才能使首次查询结果逐层用于后续查询。 2. 后续查询 SELECT 必须指定缓存表还是原始表,如果直接指定 会出现行数不一致错误。