I am working on a table referrals
which contains parent child relations
I need to get the parent -> children -> ther children -> ....
for the above table data my desired result is
I have seen some code from SOF but didn't get how they are working and tried myself with a very easy logic in my mind but unfirtunately its not working for a strange reason
I have written Stored Procedure for it but am stuck with an issue with the IN CLAUSE
DELIMITER $$
DROP PROCEDURE IF EXISTS `GetHierarchy3`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `GetHierarchy3`()
BEGIN
DECLARE idss VARCHAR(225);
SET @currentParentID := 999999;
SET @lastRowCount := 0;
## A ##
INSERT INTO referrals_copy SELECT * FROM referrals WHERE uid1 = @currentParentID;
SET @lastRowCount := ROW_COUNT();
## B ##
SELECT GROUP_CONCAT(uid2) INTO @idss FROM referrals WHERE uid1 = @currentParentID;
#SELECT @lastRowCount;
SELECT * FROM referrals_copy;
WHILE @lastRowCount > 0 DO
SELECT "here";
SELECT @idss;
## C ##
INSERT INTO referrals_copy SELECT uid1, uid2 FROM referrals
WHERE uid1 IN (@idss);
SET @lastRowCount := ROW_COUNT();
#set @ids := NULL;
SELECT @idss;
SELECT GROUP_CONCAT(uid2) FROM referrals WHERE uid1 IN (@idss);
SELECT @idss;
SET @lastRowCount := 0;
END WHILE;
-- return the final set now
SELECT
*
FROM referrals_copy;
END$$
CALL GetHierarchy3();
first I get the children for the main parent I want in the first query A
, working fine
then, gets the children of main parent into variable @idss
query B
, working fine
then in the loop I use the variable idss
in the query to get its children query C
and put them in the resultant table... This is the problematic part
here for the very first iteration I have 1111,2222
in the variable idss
which should result in insertion of values {3333, 4444} child of 1111, and {5555} child of 2222
in the table but it only put the children of 1111
ie 3333,4444
but, not 5555
I tried to replace variable from query C
to check and it worked fine with values 1111,2222' within
IN Claues`
any idea on why the IN Clause is not accepting comma separated values from a group concat or any idea on fixing this code
Regards