Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql msyql中有循环吗_Mysql - Fatal编程技术网

Mysql msyql中有循环吗

Mysql msyql中有循环吗,mysql,Mysql,我有一个mysql表,其中有两个字段表示它们的关系,如下表所示 +-------+-----------+---------+ |id |家长| id |姓名| +-------+-----------+---------+ |1 |空| A| +-------+-----------+---------+ |2 | 1 | B| +-------+-----------+---------+ |3 | 2 | C| +-------+-----------+---------+ 当我从id

我有一个mysql表,其中有两个字段表示它们的关系,如下表所示

+-------+-----------+---------+
|id |家长| id |姓名|
+-------+-----------+---------+
|1 |空| A|
+-------+-----------+---------+
|2 | 1 | B|
+-------+-----------+---------+
|3 | 2 | C|
+-------+-----------+---------+
当我从id=1的表中选择name时,它会告诉我结果是A,因为A的父id为NULL

当我从id=3的表中选择name时,它最终会告诉我结果是A,因为B是C的父级,A是B的父级


在PHP中,我们可以多次搜索它,直到父\u id为空。但是有没有一个快速的内部循环sql查询来解决这个问题呢

简短的回答是否定的-您不能在简单的SQL中循环。您可以在MySQL中编写一个存储过程,以便在SQL server上本地运行循环,从而不再需要多次往返PHP。以下是描述MySQL上存储过程的文档:

对于循环,您很可能还需要一个光标,如下所述:


您需要的是MySQL 8.0,但它在MySQL 8.0之前不可用。我想您正在寻找MySQL递归。