查询同一张表里某个id的所有在这张表里的父类名称及父子正序拼接名称
时间: 2024-03-05 08:53:26 浏览: 30
您好,如果您想要查询同一张表里某个 ID 的所有父类名称及父子正序拼接名称,您可以使用 MySQL 中的递归查询。假设您有一个表格叫做 category,其中有一个字段 id 表示分类 ID,另一个字段 parent_id 表示父级 ID,还有一个字段 name 表示分类名称,您可以使用以下 SQL 语句来查询某个 ID 的所有父级分类名称及拼接后的路径:
```
WITH RECURSIVE category_path(id, name, path) AS (
SELECT id, name, name as path
FROM category
WHERE id = {your_id}
UNION ALL
SELECT c.id, c.name, CONCAT(cp.path, ' > ', c.name)
FROM category c
JOIN category_path cp ON c.id = cp.parent_id
)
SELECT cp.id, cp.name, cp.path
FROM category_path cp
ORDER BY cp.id DESC;
```
其中,{your_id} 表示您要查询的分类 ID。这个 SQL 语句使用了 WITH RECURSIVE 子句,它可以递归查询某个 ID 的所有父级分类,并将它们的名称拼接在一起。首先,我们查询 ID 为 {your_id} 的分类,将其名称作为路径的起点。然后,我们递归查询该分类的父级分类,将其名称与路径拼接在一起。最后,我们按照分类 ID 的降序排列,以保证父子关系的正序。
希望这个回答对您有所帮助!如果您有其他问题,请随时提出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)