Mysql刷題筆記 12.25 遞迴建立路徑
阿新 • • 發佈:2020-12-26
Mysql練習
-- 12.25 遞迴建立路徑
T1225
+------+------+
| ID | PID |
+------+------+
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
+------+------+
結果
+------+------+------------+
| ID | PID | PATH |
+------+------+------------+
| 1 | 0 | 1 |
| 2 | 1 | 1->2 |
| 3 | 2 | 1->2->3 |
| 4 | 3 | 1->2->3->4 |
+------+------+------------+
DROP FUNCTION IF EXISTS f1225;
DELIMITER // -- 修改結束符
CREATE FUNCTION f1225(Id INT)
RETURNS VARCHAR(4000)
BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE idTemp INTEGER;
SET sTemp= '1';
SET idTemp = 1;
WHILE idTemp < Id DO
SET sTemp= CONCAT(STemp,'->',cast((idTemp+1) as CHAR));
SET idTemp = idTemp +1;
END WHILE;
RETURN sTemp;
END
//
DELIMITER ;
SELECT ID,PID,f1225(ID) AS PATH FROM T1225;