Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.06.19;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.003 c
6-1238322888
alshtam
2009-03-29 14:34
2011.06.19
Indi, проблема с чтением из сокета данных


15-1298842202
Юрий
2011-02-28 00:30
2011.06.19
С днем рождения ! 28 февраля 2011 понедельник


15-1299164683
bad man
2011-03-03 18:04
2011.06.19
бинарные операции


2-1299849594
ANNWYN
2011-03-11 16:19
2011.06.19
проблема со шрифтом на Delphi


1-1257493538
harisma
2009-11-06 10:45
2011.06.19
Использование JVCL компонент в DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский