|
MySQL.RU - Webboard
Вернуться
Иерархическая структура в хранимке (Герман Клюшин) 06/02/2009 - 17:26:39
Re: Иерархическая структура в хранимке (Герман Клюшин) 06/02/2009 - 17:29:32
From: Герман Клюшин - 06/02/2009 - 17:26:39
Subject:Иерархическая структура в хранимке
-----------------
Когда то делал это легко и просто на Interbase - а на MySQL просто мучение одно! Наваял что-то подобное:
CREATE DEFINER=`root`@`%` PROCEDURE `get_all_child_ids`(
IN base INT UNSIGNED,
IN max_levels INT,
OUT ids MEDIUMTEXT)
BEGIN
DECLARE currlevel INT DEFAULT 0;
SET @parents = base;
-- В случае если max_levels равно 0, то допускаем 100000 уровней.
-- Отрицательные значения дадут один уровень — это побочное явление.
SET currlevel = IF(max_levels, 1, -100000);
SET ids = '';
REPEAT
SET ids = CONCAT(ids, ',', @parents);
SELECT GROUP_CONCAT(objID) INTO @parents FROM lsk_catalog_structure
WHERE parentID IN (@parents);
SET currlevel = currlevel + 1;
UNTIL (@parents IS NULL OR currlevel > max_levels) END REPEAT;
SET ids = SUBSTR(ids, 2);
END$$
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
34964
|
|