sql >> Databáze >  >> RDS >> Mysql

Získání všech potomků (a jejich potomků) daného nadřazeného uzlu do relační tabulky MySQL/MariaDB

Zkontrolujte toto. Hodnota zadaná v @pv :='6' by měla být nastavena na id rodiče, u kterého chcete najít všechny jeho potomky.

můžete také zkontrolovat živě Ukázka aktualizována

            select  Parent, concat ( "{" ,Parent,",",GROUP_CONCAT(concat (child )SEPARATOR ','),"}")   as Child
            from    (select * from #TableName
                     order by parent, child) s,
                    (select @pv := '6') initialisation
            where   find_in_set(parent, @pv) > 0
            and     @pv := concat(@pv, ',', child);

Pro zobrazení potomků s rodičem do jednoho sloupce použijte níže uvedený dotaz :

            select parent as child from tchilds where parent = @pv2
            union
            select  Child
            from    (select * from tchilds
                     order by parent, child) s,
                    (select @pv2 := '6') initialisation
            where   find_in_set(parent, @pv2) > 0
            and     @pv2 := concat(@pv2,',', child)

dejte nám vědět, pokud máte další otázky nebo obavy.




  1. Odešlete aplikaci s databází

  2. Jaká je alternativa pro generovaný sloupec v MySQL 5.6

  3. MySQL server zmizel - přesně za 60 sekund

  4. Jak mohu obrátit výchozí řazení v MySQL?