Skip to content

Instantly share code, notes, and snippets.

@bethrezen
Created July 4, 2018 11:23
Show Gist options
  • Select an option

  • Save bethrezen/7136acac0fa01351c7905764c9a0546c to your computer and use it in GitHub Desktop.

Select an option

Save bethrezen/7136acac0fa01351c7905764c9a0546c to your computer and use it in GitHub Desktop.
DROP PROCEDURE IF EXISTS getpath;
DELIMITER $$
CREATE PROCEDURE getpath(IN cat_id INT, OUT path TEXT)
BEGIN
DECLARE catname VARCHAR(80);
DECLARE temppath TEXT;
DECLARE tempparent INT;
SET max_sp_recursion_depth = 255;
SELECT slug, parent_id FROM category WHERE id=cat_id INTO catname, tempparent;
IF tempparent =0
THEN
SET path = catname;
ELSE
CALL getpath(tempparent, temppath);
SET path = CONCAT(temppath, '/', catname);
END IF;
END$$
DELIMITER ;
DROP FUNCTION IF EXISTS getpath;
DELIMITER $$
CREATE FUNCTION getpath(cat_id INT) RETURNS TEXT DETERMINISTIC
BEGIN
DECLARE res TEXT;
CALL getpath(cat_id, res);
RETURN res;
END$$
DELIMITER ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment