id pid paths pro city
1 0 0 中国
2 1 1,2 湖南
3 1 1,3 湖北
4 2 1,2,1 湖南長沙 5 2 1, 2,2 湖南婁迪
6 3 1, 3 ,1 湖北省武漢
最終結果:
湖南長沙婁迪
湖北省武漢
忙しい一日の後でめまいがするので、やるのが難しい
select pro, group_concat(city order by paths) as city from表 where city!='' group by pro
pro city 湖北 武汉 湖南 长沙,娄底
それは間違っていますが、それでもモデレータに感謝したいです
無制限の分類が必要です、tinkphp
インターネット上にはたくさんありますが、pid のみがあり、パスパスクエリはありません。
2. クエリの基礎を説明していません
3. 隣接リストアルゴリズムでは、冗長なパス列は必要ありません
再帰的および非再帰的アルゴリズム、すべての最良の地区
4. パス列の意味が不明瞭、特に都市レベルを表す値が不明瞭です
5. 私の国の行政区画の基準によると、州、市、郡、および郷の 4 つのレベルしかありません
プラス国と村、つまり6つのレベルは、無限の分類であるとは言えず、変更の確率は非常に小さいです
したがって、データは、事前にソートされたツリートラバーサルアルゴリズムに従って整理される必要があります
id pid paths pro city
1 0 0、中国
2 1 1,2、湖南
3 1 1,3、湖北
4 2 1,2,4、湖南長沙
5 2 1,2,5、湖南Loudi
6 3 1,3,6, Hubei Wuhan
湖南省のすべての都市を取得します
SELECT `city` FROM `pro` WHERE instr(`paths`,'1,2,')