mysql查询id=1的所有子级如果某一个子级是vip那么就不查询该子级下面数据。给出mysql查询语句
假设有一个名为table_name的表,包含以下字段:
id:子级ID,主键parent_id:上级IDis_vip:是否为VIP(0表示非VIP,1表示VIP)
以下是给出的MySQL查询语句,用于查询id=1的所有子级,如果某一个子级是VIP,则不查询该子级下面的数据:
WITH RECURSIVE cte AS (
SELECT id, parent_id, is_vip
FROM table_name
WHERE id = 1
UNION ALL
SELECT t.id, t.parent_id, t.is_vip
FROM table_name t
JOIN cte ON t.parent_id = cte.id
WHERE cte.is_vip = 0
)
SELECT *
FROM cte;
该查询使用了递归查询(Recursive CTE)的方式,通过不断连接子级与上级的关联,实现查询id=1的所有子级,并在遇到VIP子级时停止查询该子级下面的数据。
原文地址: https://www.cveoy.top/t/topic/iV5e 著作权归作者所有。请勿转载和采集!