Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uzyskaj ścieżkę korzenia drzewa za pomocą czystego MySQL

Myślę, że procedury składowane mogą działać:

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. Równoważnik łączenia dla n-tej niezerowej wartości - MySQL

  2. Śledzenie w czasie rzeczywistym na mapie google

  3. Jak uzyskać wiele zliczeń za pomocą pojedynczego zapytania w MySQL?

  4. Udostępnianie bazy danych (mysql) pomiędzy aplikacjami Django z routerami bazodanowymi

  5. Wstaw, zaktualizuj, usuń wiersze jtable posiadające dane mysql