Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

mysql पुनरावर्ती (पेड़) अभिभावक बाल श्रेणी

यह थ्रेड मेरा नेतृत्व करें। @RolandoMySQLDBA

. को धन्यवाद
DELIMITER $$
DROP FUNCTION IF EXISTS `GetAncestry` $$
CREATE FUNCTION `GetAncestry` (GivenID INT) RETURNS VARCHAR(1024)
DETERMINISTIC
BEGIN
    DECLARE rv VARCHAR(1024);
    DECLARE cm CHAR(1);
    DECLARE ch INT;

    SET rv = '';
    SET cm = '';
    SET ch = GivenID;
    WHILE ch > 0 DO
        SELECT IFNULL(`prent`,-1) INTO ch FROM
        (SELECT `prent` FROM Table1 WHERE id = ch) A;
        IF ch > 0 THEN
            SET rv = CONCAT(rv,cm,ch);
            SET cm = ',';
        END IF;
    END WHILE;
    RETURN rv;

END $$
DELIMITER ;

एक कार्यशील fiddle यहाँ।

SELECT id,GetAncestry(id) as parents from Table1 where id = 7;

ID  PARENTS
7   6,3,2,1



  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 तालिका संरचना प्रस्ताव?

  2. डोकर अद्यतन के बाद MacOS पर एक डोकर कंटेनर में Mysql शुरू नहीं हो रहा है

  3. MySQL टेक्स्ट बनाम बीएलओबी बनाम सीएलओबी

  4. सत्यापन और डेटा एक डीबी तालिका में जोड़ें

  5. विशिष्ट आकार बनाना