mysq 5.7 递归查询
时间: 2023-09-05 11:11:23 浏览: 52
MySQL 5.7 不支持递归查询,但是你可以使用其他方法来实现递归查询的效果。一种常用的方法是使用存储过程或函数来模拟递归查询。下面是一个简单的示例,演示如何使用存储过程来实现递归查询:
首先,创建一个存储过程来模拟递归查询:
```sql
DELIMITER $$
CREATE PROCEDURE recursive_query(IN initial_id INT)
BEGIN
DECLARE current_id INT;
DECLARE done INT DEFAULT FALSE;
DECLARE temp_table TABLE (
id INT,
parent_id INT,
name VARCHAR(255)
);
-- 创建临时表存储查询结果
INSERT INTO temp_table (id, parent_id, name)
SELECT id, parent_id, name
FROM your_table
WHERE id = initial_id;
-- 循环查询父级,直到没有父级为止
REPEAT
-- 获取当前查询结果的最后一行
SELECT id INTO current_id
FROM temp_table
ORDER BY id DESC
LIMIT 1;
-- 查询当前行的父级
INSERT INTO temp_table (id, parent_id, name)
SELECT id, parent_id, name
FROM your_table
WHERE id = (SELECT parent_id FROM temp_table WHERE id = current_id);
-- 如果没有父级,结束循环
IF ROW_COUNT() = 0 THEN
SET done = TRUE;
END IF;
UNTIL done END REPEAT;
-- 返回查询结果
SELECT * FROM temp_table;
-- 删除临时表
DROP TABLE temp_table;
END $$
DELIMITER ;
```
然后,调用存储过程进行递归查询:
```sql
CALL recursive_query(1);
```
这里的 `1` 是初始的查询 ID,你可以根据你的需求修改它。这个存储过程会返回从指定 ID 开始的所有父级行。
请注意,这只是一种模拟递归查询的方法,实际上并不是真正的递归查询。如果需要进行复杂的递归操作,可能需要考虑使用其他数据库管理系统或者编程语言来实现。
相关推荐
![wps](https://img-home.csdnimg.cn/images/20210720083653.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)