上次的没解决 这次重新写了一个DROP FUNCTION getTopId; DELIMITER $$ CREATE FUNCTION getTopId(inputId INT) RETURNS INT BEGIN DECLARE result_id INT; DECLARE input_id INT; SET input_id = inputId ; REPEAT SET result_id = @d; SELECT COUNT(*) INTO @c FROM contents WHERE id = input_id and parent_id is not null; SELECT parent_id into @d from contents WHERE id = input_id; SET input_id = @d; UNTIL (@c = 0) END REPEAT ; RETURN result_id; END $$
DELIMITER $$
CREATE FUNCTION getTopId(inputId INT) RETURNS INT BEGIN
DECLARE result_id INT;
DECLARE input_id INT;
SET input_id = inputId ;
REPEAT
SET result_id = @d;
SELECT COUNT(*) INTO @c FROM contents WHERE id = input_id and parent_id is not null;
SELECT parent_id into @d from contents WHERE id = input_id;
SET input_id = @d;
UNTIL (@c = 0)
END REPEAT ;
RETURN result_id;
END $$