Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.06.19;
Скачать: CL | DM;

Вниз

Mysql stored proc, записи в цикле   Найти похожие ветки 

 
Avil   (2011-03-15 12:59) [0]

Дорогие мастера, помогие с проблемой.

Стало быть весь мой опыт написания процедур остановился на firebird/IB, но недавно потребовалось написать клиент под mysql, для чего надо создать несколько хранимых процедур для выборки данных. И тут возникла такая проблема:

for select column from table into :out_column do suspend;

Как это написать на MySQL? Согласно документации необходимо создавать временные таблицы и работать с ними, но в общем виде мне не удалось найти примеров, только описание отдельных методов, которые участвуют в построении.


 
clickmaker ©   (2011-03-15 13:04) [1]

> Как это написать на MySQL?

CREATE PROCEDURE `sp_MyProc`()
BEGIN
 SELECT `column` FROM `table`;
END;


 
Avil   (2011-03-15 13:13) [2]


>CREATE PROCEDURE `sp_MyProc`()
>BEGIN
>SELECT `column` FROM `table`;
>END;


Видимо придется в полной мере запрос сделать чтобы было понятно.


for
select column
from table1
into :v_column
do
begin
if (:v_column = 1) then
 result = "yes"
else
 result = "no";
suspend;
end


Операцию сравнения надо сделать для каждой записи table1.


 
clickmaker ©   (2011-03-15 13:17) [3]

if exists (select * from table1 where column = 1)
 set result = "yes"
else
 set result = "no"


 
Avil   (2011-03-15 13:40) [4]


> if exists (select * from table1 where column = 1)
>  set result = "yes"
> else
>  set result = "no"


>Операцию сравнения надо сделать для каждой записи table1.
Для каждой значит не хотя бы одна.
И ключевое слово suspend; как бы намекает, что производится добавления строки в результирующую таблицу.
Мне нужна таблица результатов, а не одна переменная с последним результатом.


 
clickmaker ©   (2011-03-15 13:46) [5]

http://dev.mysql.com/doc/refman/5.0/en/cursors.html


 
Avil   (2011-03-15 13:49) [6]

Спасибо, оно.


 
b z   (2011-03-15 15:31) [7]

Вродеж кэйс тоже есть тут...
select case column when 1 then "yes" else "no" end as result from table1



Страницы: 1 вся ветка

Текущий архив: 2011.06.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
2-1299874810
Евгений_С
2011-03-11 23:20
2011.06.19
RxRichEdit


2-1300221363
Scott Storch
2011-03-15 23:36
2011.06.19
Добавление в таблицу БД


15-1298562424
И. Павел
2011-02-24 18:47
2011.06.19
Тяжелый рок!


15-1299141839
pasha_golub
2011-03-03 11:43
2011.06.19
Расшифровка математических выражений


2-1299918530
LDV
2011-03-12 11:28
2011.06.19
много get-запросов