SELECT * FROM ( SELECT t1.*, IF ( FIND_IN_SET( parent_id, @parent_ids ) > 0, @parent_ids := CONCAT( @parent_ids, ',', id ), '0' ) AS ischild FROM ( SELECT * FROM blade_menu AS t WHERE t.is_deleted = 0 AND client_type = 'dianduyun_app' ORDER BY t.id ASC ) t1, ( SELECT @parent_ids := '1508255373140103170' ) t2 ) t3 WHERE ischild != '0'
需要修改的地方: ・parent_id,改为你的父级 id 字段 ・blade_menu ,改为你的表名称 ・WHERE t.is_deleted = 0 ,改为你的查询条件 ・@parent_ids := ‘1508255373140103170’,值改为你要传入的父级 id
方法二:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
SELECT rd.* FROM ( SELECT * FROM fine_authority_object WHERE parentId IS NOT NULL AND is_deleted = 0 ) rd, ( SELECT @pid := '2342465874553522423' ) pd WHERE FIND_IN_SET( parentId, @pid ) > 0 AND @pid := concat( @pid, ',', id )
UNION SELECT * FROM fine_authority_object WHERE FIND_IN_SET( id, @pid ) > 0;
需要修改的地方 fine_authority_object ,改为你的表名,以及后面的查询条件进行修改。 SELECT @pid := ‘2342465874553522423’ ,值改为你要传的父 id 的值 FIND_IN_SET (parentId, @pid) ,parentId 改为你的父级 id 字段名 备注: ・当前这条 SQL 是根据多个父节点查询所有子节点(包含自身) ・如果不想查询结果包含自身,去掉后边的 union
来做第一个留言的人吧!