Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dapatkan jalur akar pohon dengan MySQL murni

Saya pikir prosedur tersimpan dapat berfungsi:

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. Sisipan batch menggunakan SQL Asli di Hibernate

  2. Kesalahan Pernyataan Disiapkan Java MYSQL:Periksa sintaks untuk digunakan di dekat '?' di baris 1

  3. Entri duplikat untuk kunci 'PRIMARY'. Mengabaikan spasi untuk string

  4. Tanggal sistem reservasi

  5. Tidak dapat mengembalikan hasil dari prosedur tersimpan menggunakan kursor Python