mysql 递归查询省市
时间: 2023-12-02 15:43:19 浏览: 194
以下是使用MySQL递归查询省市的方法:
```sql
-- 设置初始查询条件
SET @pids = '7';
-- 递归查询省市
SELECT c2.id, c2.pid, c2.area_name AS areaName, c2.area_type AS areaType
FROM (
-- 递归查询所有子节点的id
SELECT t1.id, IF(FIND_IN_SET(t1.pid, @pids) > 0, @pids := CONCAT(@pids, ',', t1.id), 0) AS leafNodeId
FROM (SELECT @pids := 7) xxx, (SELECT id, pid FROM `lz_pm_area`) t1
) c3
INNER JOIN `lz_pm_area` c2 ON c2.id = c3.id
WHERE c3.leafNodeId != 0;
```
该方法使用MySQL的用户变量和递归查询实现了省市的查询。首先,我们设置了初始查询条件,即查询id为7的省份。然后,我们使用递归查询的方式,查询出所有子节点的id,并将其存储在用户变量@pids中。最后,我们将查询结果与原始表连接,得到省市的详细信息。
--相关问题--:
1. 如何在MySQL中使用递归查询?
2. 什么是MySQL的用户变量?
3. 如何在MySQL中使用JOIN连接
阅读全文