これは私のクエリです
$query="SELECT parent.name, parent.depth
FROM address AS node,
address AS parent
WHERE node.name LIKE '%".$name."%' AND
node.lft BETWEEN parent.lft AND parent.rgt
order by node.lft, parent.rgt";
これは私のテーブル構造です:
name |lft | rgt | depth|
------------+----+-----+------+
Australia | 1 | 10 | 1 |
nsw | 2 | 9 | 2 |
sydney | 3 | 8 | 3 |
kensington | 4 | 5 | 4 |
kingsford | 6 | 7 | 4 |
------------+----+-----+---- -+
$name
=kと仮定すると、結果は次のようになります。
name |depth|
------------+-----+
kingsford | 4 |
sydney | 3 |
nsw | 2 |
Australia | 1 |
kensington | 4 |
sydney | 3 |
nsw | 2 |
Australia | 1 |
私はそれらを次のように提示します:
-->kensington, sydney, nsw, australia
-->kingsford, sydney, nsw, australia
これを最大で 10 個のアドレスのみをカバーするように制限することはできませんでした。たとえば、追加limit 2
した場合、上記の 2 つのアドレスは表示されません。これだけが表示され-->kensington, sydney
ます。これどうやってするの?