Php 查找id的父项,直到条件为真

Php 查找id的父项,直到条件为真,php,mysql,recursive-query,Php,Mysql,Recursive Query,我有一个名为member的表,其结构如下 +----+-----------+-------------+ | id | parent_id | status | +----+-----------+-------------+ | 1 | 0 | DISTRIBUTOR | | 2 | 1 | DISTRIBUTOR | | 3 | 2 | DISTRIBUTOR | | 4 | 2 |

我有一个名为
member
的表,其结构如下

+----+-----------+-------------+  
| id | parent_id | status      |  
+----+-----------+-------------+  
|  1 |         0 | DISTRIBUTOR |  
|  2 |         1 | DISTRIBUTOR |   
|  3 |         2 | DISTRIBUTOR |  
|  4 |         2 | RETAILER    |  
|  5 |         4 | RETAILER    |  
|  6 |         5 | DISTRIBUTOR |  
+----+-----------+-------------+ 
现在我想找到父
id
。例如,如果我选择
id
6,那么它将显示6的父id是5,但问题是:如果我选择了ID6,因为它的父项5的状态是零售商,它将向上检查ID5的父项id是什么,但因为ID4的父项id是零售商,它将再次向上检查ID4的父项id4的父id为2,状态分配器将停止,并输出id 6的父id为id 2

编辑(用户在评论部分给出的查询)


从id='6'的成员中选择id、父id、状态。我不知道如何得到我想要的结果,在条件为真之前找到下一个父id。可能重复“是”,但不同的是,如果零售商认为需要使用a来模拟递归查询,我如何跳过父id并继续,直到条件满足Distributor,或者重构数据库。正如Amit所说,MySQL不支持递归。取而代之的是,选项包括但不限于以下内容:-尽可能多次地将表连接到自身-在应用程序级别处理递归,例如使用PHP循环-使用存储过程处理递归-切换到嵌套集(或某种混合模型)除了“所谓的”邻接列表模型之外,所有这些解决方案都在其他地方进行了更深入的讨论,包括一些关于分层数据和MySQL的优秀、流行且易于谷歌搜索的文章。
SELECT id, parent_id, status FROM member WHERE id=6.