SQLite3 中的递归查询
在 SQLite3 中,可以执行递归查询从包含父子的表中检索分层数据关系,例如查找给定超级部分的所有子部分。为了实现这一点,您可以使用WITH RECURSIVE语法,该语法在SQLite3版本3.8.3及更高版本中受支持。
WITH RECURSIVE SubParts AS ( SELECT Part, SuperPart, 1 AS Level FROM Part WHERE SuperPart = 'eZ00' UNION ALL SELECT p.Part, p.SuperPart, s.Level + 1 FROM Part AS p JOIN SubParts AS s ON p.SuperPart = s.Part ) SELECT * FROM SubParts;
WITH RECURSIVE语句创建一个名为SubParts的临时表,其中包含原始行和名为 Level 的列,其父行初始化为 1。 UNION ALL 子句通过选择与当前行的子部分匹配的行并将 Level 加 1 来执行递归步骤。然后查询返回 SubParts 表中的所有行。
SQLite3 之前的版本3.8.3
在 SQLite3 版本 3.8.3 之前,没有递归查询支持。要在客户端代码中模拟多级层次结构的递归,请按照以下步骤操作:
以上是如何在SQLite3中执行递归查询来检索分层数据?的详细内容。更多信息请关注PHP中文网其他相关文章!