この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2019-11-21 10:06:04

タイトル: 階層SQL(バージョン8未満)
SEOタイトル: MySQLにおける階層SQL(バージョン8未満)

バージョン8未満のMySQLはOracleと違い、階層SQL用に用意されている関数が無いので以下のように実行する必要がある。

select
    id,
    parent_id
from
    (
        select
            *
        from
            test_table
        order by
            parent_id,
            id
    ) sorted_records,
    (
        select
            @val := '5'
    ) initialization
where
    find_in_set(parent_id, @val)
and length(@val := concat(@val, ',', id))

上記のSQLでは「@val」に指定したID以下に紐づく全レコードを取得します。