gpt4 book ai didi

php - 检查返回数组中是否有更多引用递归的 MYSQL 查询是什么?

转载 作者:行者123 更新时间:2023-11-30 22:56:44 26 4
gpt4 key购买 nike

我有这张 table 我的表

  ID    |   ReferenceID
---------------------
1 | NULL
2 | NULL
3 | 1
4 | 1
5 | 2
6 | 2
7 | 5

而且我有一个递归函数来显示结果。

$query = mysql_query("SELECT * FROM myTABLE WHERE ReferenceID =$1 ");

所以这个查询会返回

返回数组 = 3,4

他们停在那里。没有条目将它们作为引用。

但是

$query = mysql_query("SELECT * FROM myTABLE WHERE ReferenceID =$2 ");

返回

返回数组 = 5,6

5还有更上一层。

那么我如何检查 ReturningArray 是否有更多的引用级别或它就停在那里?

最佳答案

如果您只想进行一级引用检查,可以使用以下 SQL 来完成:

$dbLink = mysqli_connect(); //host, user, pass etc go here as arguments
$refId = 1; // your ReferenceID
$refIdEscaped = mysqli_escape_string($refId); //always remember to escape input
$query = "SELECT main.*,
CASE WHEN ref.ReferenceID IS NULL THEN 1 ELSE 0 END as recursion_exists
FROM myTABLE main
LEFT JOIN myTABLE ref ON main.ReferenceId = ref.ID
WHERE main.ReferenceID = '{$refIdEscaped}'";

您将从表中获取所有数据,其中包含一个附加列 (recursion_exists),其值为 1(如果存在递归)或 0(如果不存在)。

对于多重递归,您也可以使用 sql 来实现,如上例所示添加更多 LEFT JOIN

关于php - 检查返回数组中是否有更多引用递归的 MYSQL 查询是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com