Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать select из процедуры? / 7 сообщений из 7, страница 1 из 1
29.08.2013, 08:42:17
    #38380572
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
Привет всем
Хотель спросить
Есть процедура который принимает родительский ИД и возвращает все дочерные ИД
Как сделать 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
29.08.2013, 09:07:08
    #38380580
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
mr.UlugbekКак сделать select из процедуры?
Код: sql
1.
select * from proc(1) 

Никак.
...
Рейтинг: 0 / 0
29.08.2013, 09:23:19
    #38380588
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
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
29.08.2013, 11:08:29
    #38380713
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
mr.Ulugbekтакой код не работаетЯННП. А что вы вообще хотите этим кодом сделать? Выбрать что-то из строковой переменной? Ясен пень, ничего оттуда не выберется... собирайте в переменной весь запрос - сразу вместе с инсертом - и экзекьютьте его. Целиком. Без выдумывания какого-то своего эзотерического синтаксиса.
...
Рейтинг: 0 / 0
29.08.2013, 11:17:58
    #38380735
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
Пример ?
...
Рейтинг: 0 / 0
29.08.2013, 11:27:09
    #38380753
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
Код: 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
29.08.2013, 13:50:01
    #38381056
mr.Ulugbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать select из процедуры?
спасибо пробуем
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать select из процедуры? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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