sql >> データベース >  >> RDS >> Mysql

純粋なMySQLでツリーのルートパスを取得する

    ストアドプロシージャは機能すると思います:

    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. URLパラメータを取得してデータベースに挿入します

    2. DBCCSHRINKFILEコマンドの概要

    3. MySQLインデックス-いくつで十分ですか?

    4. Codeigniterのフォーマット済みクエリを元のMysqlクエリに変換する方法(例:$ this-> db-> select('table1。*、table2。*、table3。*'))