【发布时间】:2021-03-02 01:57:16
【问题描述】:
我需要一个能够检索条目的所有父母和所有孩子(我不知道会有多少级别)的查询。 我已经使用了一段时间这个查询,但我现在意识到它不起作用:当我插入一个子 id 时,它不会检索父。
SELECT id, title, parent FROM
(SELECT * FROM table1 ORDER BY id ASC) sorted,
(SELECT @pv := ?) initialisation WHERE (FIND_IN_SET(parent, @pv) OR id = @pv) AND length(@pv := CONCAT(@pv, ',', id))
UNION
SELECT id, title, parent FROM
(SELECT * FROM table1 ORDER BY post_id ASC) sorted2,
(SELECT @pv2 := @pv) initialisation2 WHERE (FIND_IN_SET(post_id, @pv2) OR parent = @pv2) AND length(@pv2 := CONCAT(@pv2, ',', parent))
例子:
id name parent
4 red 0
20 brown 4
22 blu 20
如果我设置 ? = 4 它得到所有这些,但如果?设置为 20 它只有 20 和 22。 任何帮助,将不胜感激! 谢谢
[MySQL v 5.7]
【问题讨论】:
-
什么是精确的 MySQL 版本?
标签: mysql recursion parent-child hierarchy mysql-5.7