mysql 递归 不用 with 自定义查询

Mysql 自定义递归查询数据
SELECT
ID.LEVEL,
DATA.*
FROM
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( id ) FROM 表名 WHERE FIND_IN_SET( 父级 id字段, @ids ) ) AS cids,
@l := @l + 1 AS LEVEL
FROM
表名,
( SELECT @ids := ‘条件id’, @l := 0 ) b
WHERE
@ids IS NOT NULL
) ID,
表名 DATA
WHERE
FIND_IN_SET( DATA.id, ID._ids )
ORDER BY
LEVEL,
id
实际 操作模板
实现物料 递归查询数据
SELECT
t2.product_id
FROM
(
SELECT
@ids AS _ids,
(
SELECT
@ids := group_concat( product_id )
FROM
sjy_pro_product_material
WHERE
deleted = 0 and
find_in_set( material_id, @ids )) AS cids
FROM
sjy_pro_product_material,
( SELECT @ids := ‘需要的条件id,可以传多个’) b
WHERE
@ids <> ‘’
) t1,
sjy_pro_product_material t2
WHERE
find_in_set ( t2.material_id, t1._ids )
AND t2.deleted = 0 ORDER BY t2.product_id asc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值