このデータ構造モデルを使用するカテゴリにテーブルがあります。また、カテゴリのブランチのパスを示す別のテーブルを使用します。
**t_category**
id | name | parent
------------------
1 mascot null
2 cat 1
3 dog 1
4 doberman 3
**t_category_path**
id | path
------------------
1 /1/
2 /1/2/
3 /1/3/
4 /1/3/4/
私が欲しいのは、任意のアイテムの親のリストを取得することです。たとえば、「dog」を検索すると「dog、mascot」が表示され、「doberman」を検索すると「doberman、dog、mascot」が表示されます。
私はこれを試しました...しかしそれは逆です、私は両親が葉を手に入れるのを探すことを意味します:
SELECT
c2.id,
c2.name,
p.path
FROM t_category c, t_category c2, t_category_path p, t_category_path p2
WHERE c.id = 1
AND p2.id = c.id
AND p.path LIKE(CONCAT(p2.path,'%'))
AND c2.id = p.id
ORDER BY p.path ASC;
そして明らかに得る:
id | name | path
------------------
1 mascot /1/
2 cat /1/2/
3 dog /1/3/
4 doberman /1/3/4/
しかし、私は「ドーベルマン」から入手したい:
id | name | path
------------------
1 mascot /1/
3 dog /1/3/
4 doberman /1/3/4/
葉っぱから相談することはできますか?