powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Динамические запросы в функциях или как вернуть значение из функции
6 сообщений из 6, страница 1 из 1
Динамические запросы в функциях или как вернуть значение из функции
    #39785559
pr0n1x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Есть обычное дерево id, parent_id, name.
Нужно написать процедуру/функцию которая возвращает потомков для указанных узлов со степенью вложенности 3 например.

Для того, чтобы найти 3ю степень вложенности, нужно перебрать 2ю, взять их ийдишки и найти найдишки для 3й степени вложенности. Как это сделать правильно?

Функция подобной этой не работает
Код: sql
1.
2.
3.
4.
5.
BEGIN	
	DECLARE ids MEDIUMTEXT DEFAULT '';
	SELECT GROUP_CONCAT(`id`) AS `ids` INTO ids FROM `referrals` WHERE `parent_id` IN (ref_ids);
	RETURN ids;
END



Потому что в IN я не могу напрямую передать строку с идентификаторами, mysql ее не воспринимает как набор значений.
Делать диманические запросы execute в функциях нельзя.

Как можно решить такую задачу?
...
Рейтинг: 0 / 0
Динамические запросы в функциях или как вернуть значение из функции
    #39785648
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Укажите точную версию сервера.
...
Рейтинг: 0 / 0
Динамические запросы в функциях или как вернуть значение из функции
    #39785656
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pr0n1xсо степенью вложенности 3 напримерЕсли вложенность ограничена сверху, то не нужны ни функция, ни динамический запрос - задача решается одним запросом с нужным количеством джойнов таблицы самой с собой.
...
Рейтинг: 0 / 0
Динамические запросы в функциях или как вернуть значение из функции
    #39785718
pr0n1x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaУкажите точную версию сервера.

MySql 5.5 - with recursive не поддерживается
...
Рейтинг: 0 / 0
Динамические запросы в функциях или как вернуть значение из функции
    #39785722
pr0n1x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftpr0n1xсо степенью вложенности 3 напримерЕсли вложенность ограничена сверху, то не нужны ни функция, ни динамический запрос - задача решается одним запросом с нужным количеством джойнов таблицы самой с собой.

В том то и дело, что вложенность не ограничена
...
Рейтинг: 0 / 0
Динамические запросы в функциях или как вернуть значение из функции
    #39785729
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pr0n1xвложенность не ограниченаВ т.ч. и вложенность которая может быть затребована?

Ну тогда да, процедура, внутри цикл и временная таблица.

Цикл - типа FOR (эмулируем, ибо именно такого синтаксис не предусмотрел).
Копируем во временную таблицу записи первого уровня. Затем в цикле вставляем в неё всех потомков уже имеющихся в ней записей (с игнором повторов), связывая её с исходной таблицей.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Динамические запросы в функциях или как вернуть значение из функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]