22.

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以下に紐づく全レコードを取得します。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ダウンロード&インストール方法(Windows)
  2. インストール方法(Linux)
  3. コマンド一覧
  4. SQL
  5. データ型
  6. 関数
  7. 管理ツール
  8. 設定
  9. パフォーマンスチューニング関連
  10. エクスポートおよびインポート
  11. エラー&トラブル
  12. 文字コードの確認
  13. 実行中のSQLの状態確認およびプロセスキルの方法
  14. パスワードの無効化設定
  15. rootユーザーの初期パスワード確認方法
  16. rootユーザーのパスワード変更方法
  17. limit, offsetの始まりと挙動
  18. mysqlのバージョン確認方法
  19. 実行計画の表示方法
  20. レプリケーションのステータス確認方法
  21. 中央値の導き方(バージョン8未満)
  22. 階層SQL(バージョン8未満)
  23. パーセンタイルの導き方
  24. 特定スキーマの全テーブルの全カラム情報を取得する方法
  25. MySQLで文字列の置換をする方法