私は以下のように 'category'という名前のmysqlテーブルを持っています.itはparent_idフィールドが親カテゴリIDを参照し、各カテゴリにn個の子カテゴリを追加できます。複数のカテゴリ、私はそれを選択する必要がありますid.so特定のカテゴリのテーブルからカテゴリとそのサブカテゴリのすべてを返すようにクエリを記述する必要がmysqlクエリを使用してすべての子カテゴリを返す
「A-1」のようなものですすべての子カテゴリとその子カテゴリの子のすべてを取得するまでです。このため、私は迷惑クエリを書いています。
select @pv:=id as category_id, name, parent_id from category
join (select @pv:=1)tmp where [email protected]
そして、それは
しかし、ここで私たちは、このリスト内のカテゴリの全てが-1.butの子であることはないことがわかりCAを次のようにのような唯一の3行を返します。それらのすべてを返す。私はこれを修正できますか?
あなたはストレージモデルを再考する必要があります。その周りに他の簡単な方法はありません。 MySQLは再帰関数も他のウィンドウ関数もサポートしていません。そのため、ツリーストレージの現在のパターン( "隣接ツリー")はあなたの仕事では機能しません。 [this](https://stackoverflow.com/questions/4048151/what-are-the-options-for-storing-hierarchical-data-in-a-relational-database)を参照してください。 –
MySQLは再帰をサポートしています。https: //dev.mysql.com/doc/refman/8.0/en/with.html#common-table-expressions-recursive – JimmyB
@JimmyB ok、最新のものです。それから、特定のバージョンにまで沸きます –