Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Nhận đường dẫn gốc của một cây bằng MySQL thuần túy

Tôi nghĩ rằng các thủ tục được lưu trữ có thể hoạt động:

DELIMITER $$

DROP PROCEDURE IF EXISTS get_root;
CREATE PROCEDURE get_root(
   IN parentID INT,
   OUT rootID INT
)

BEGIN   
    SELECT parent_id FROM tree WHERE id = parentID INTO rootID;

    IF rootID = 0
        THEN SET rootID = parentID;
    ELSE
        CALL get_root(rootID, rootID);
    END IF;

END$$
DELIMITER ;

SET @@GLOBAL.max_sp_recursion_depth = 255;
SET @@session.max_sp_recursion_depth = 255; 

CALL get_root(4, @rootID);
SELECT @rootID;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql không thể làm cho cột auto_increment

  2. Khắc phục lỗi trường không rõ ràng trong truy vấn SQL

  3. Cách thực hiện truy vấn eav này để tạo kết quả theo chiều ngang

  4. sql nhận tổng số và tổng số đã lọc trong một truy vấn

  5. Cài đặt Django mysqlclient