powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать select из процедуры?
7 сообщений из 7, страница 1 из 1
Как сделать select из процедуры?
    #38380572
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем
Хотель спросить
Есть процедура который принимает родительский ИД и возвращает все дочерные ИД
Как сделать select из процедуры?

Код: sql
1.
select * from proc(1) 


сама процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 
BEGIN
    DECLARE ids TEXT DEFAULT '';
 
    SET @parents = base;
    SET ids = base;
 
    loop1: LOOP
        SET @stm = CONCAT(
            'SELECT GROUP_CONCAT(id) INTO @parents FROM goods',
            ' WHERE parent_id IN (', @parents, ')'
        );
 
        PREPARE fetch_childs FROM @stm;
        EXECUTE fetch_childs;
        DROP PREPARE fetch_childs;
 
        IF @parents IS NULL THEN LEAVE loop1; END IF;
 
        SET ids = CONCAT(ids, ',', @parents);
    END LOOP;
 
    SET @stm = CONCAT('SELECT goods.id FROM goods goods WHERE id IN (select distinct id_goods from property where id_goods in (', ids, '))'); 
 
    PREPARE fetch_childs FROM @stm;
    EXECUTE fetch_childs;
    DROP PREPARE fetch_childs;
END
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38380580
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.UlugbekКак сделать select из процедуры?
Код: sql
1.
select * from proc(1) 

Никак.
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38380588
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

А как тогда внутри процедеру инсертит временную таблицу
пример

insert into temp select fetch_childs FROM @stm; такой код не работает

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
BEGIN
    DECLARE ids TEXT DEFAULT '';
 
    SET @parents = base;
    SET ids = base;
 
    loop1: LOOP
        SET @stm = CONCAT(
            'SELECT GROUP_CONCAT(id) INTO @parents FROM goods',
            ' WHERE parent_id IN (', @parents, ')'
        );
 
        PREPARE fetch_childs FROM @stm;
        EXECUTE fetch_childs;
        DROP PREPARE fetch_childs;
 
        IF @parents IS NULL THEN LEAVE loop1; END IF;
 
        SET ids = CONCAT(ids, ',', @parents);
    END LOOP;
 
    SET @stm = CONCAT('SELECT goods.id FROM goods goods WHERE id IN (select distinct id_goods from property where id_goods in (', ids, '))'); 

    insert into temp select fetch_childs FROM @stm; такой код не работает
 
    PREPARE fetch_childs FROM @stm;
    EXECUTE fetch_childs;
    DROP PREPARE fetch_childs;
END
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38380713
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr.Ulugbekтакой код не работаетЯННП. А что вы вообще хотите этим кодом сделать? Выбрать что-то из строковой переменной? Ясен пень, ничего оттуда не выберется... собирайте в переменной весь запрос - сразу вместе с инсертом - и экзекьютьте его. Целиком. Без выдумывания какого-то своего эзотерического синтаксиса.
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38380735
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример ?
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38380753
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SET @stm = CONCAT('insert into temp SELECT goods.id FROM goods goods WHERE id IN (select distinct id_goods from property where id_goods in (', ids, '))'); 
...
Рейтинг: 0 / 0
Как сделать select из процедуры?
    #38381056
mr.Ulugbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо пробуем
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать select из процедуры?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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