写一段mysql支持的sql,能够通过父id 获取所有子id
假设我们有一个名为"category"的表,其中有两列分别为"id"和"parent_id",表示每个分类的唯一标识符和其父分类的标识符。
我们可以使用递归查询的方式来获取所有子id,具体的SQL语句如下:
WITH RECURSIVE subcategories AS ( SELECT id FROM category WHERE id = ?
UNION ALL
SELECT c.id FROM category c JOIN subcategories s ON c.parent_id = s.id ) SELECT * FROM subcategories;
其中,"?"表示要获取子id的父id。
这个SQL语句使用了CTE(公共表表达式)和递归查询来实现。首先,我们选择指定的父id作为查询的起点。然后,我们使用UNION ALL将每个子分类的id连接起来,直到没有更多的子分类为止。最后,我们从递归查询的结果集中选择所有的子id。
这个SQL语句可以很方便地获取指定分类的所有子分类,而且可以适用于任意深度的分类结构。
原文地址: https://www.cveoy.top/t/topic/wOQ 著作权归作者所有。请勿转载和采集!