SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 27.06.2012 15:12:55

dadli
Завсегдатай
Зарегистрирован: 16.10.2011
Сообщений: 50

исползование цикл WHILE

здравствуите, есть хранимка такая

CREATE PROCEDURE `proc_CASE` ()  
BEGIN

CASE  
        WHEN  (SELECT status FROM mytable LIMIT 1  ) = 2
        THEN  
            INSERT INTO table1  VALUES(2);
        ELSE  
            INSERT INTO table1  VALUES(0);
    END CASE;  
 
END ;


то есть проверяю поле "стату"с в таблице "mytable", если оно ровно 2, то в таблице table1 вставливаю 2, иначе 0.
вопрос: ето сделается толко для первого строку, а хотел чтоб ето проверка происходилос для кождои строки, нужно цикл WHILE да? но как именно её исползовать не понял, подскажите плиз.

Неактивен

 

#2 27.06.2012 15:44:32

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: исползование цикл WHILE

Вам придется делать в цикле (с помощью подготовленных выражений prepared statement и пользовательских переменных) запросы вида limit 1,1 (limit 2,1; limit 3,1 ...), и не забудьте указывать сортировку.

Но проще просто заполнить table1 нулями, а потом сделать update двух таблиц (table1, mytable) заменив в нужных местах нули на двойки.

Неактивен

 

#3 27.06.2012 15:53:57

dadli
Завсегдатай
Зарегистрирован: 16.10.2011
Сообщений: 50

Re: исползование цикл WHILE

vasya
да можно по другому сделать, но мне именно интересно как сделать в цикле WHILE.  но вот что не понимаю
если написать так
 

WHILE variable1 < 7 DO  
       .........
       .........
    END WHILE;

то ето азначает что щикл сработает с первим 6 строкам да? а как "сказать" циклу,  чтоб он работал для всех записеи втаблице ?

Неактивен

 

#4 27.06.2012 16:06:46

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: исползование цикл WHILE

Выполняете пока не будет получен пустой результат.

Для обработки выборки лучше вместо цикла while использовать курсоры
http://dev.mysql.com/doc/refman/5.5/en/cursors.html

Неактивен

 

#5 27.06.2012 16:43:13

dadli
Завсегдатай
Зарегистрирован: 16.10.2011
Сообщений: 50

Re: исползование цикл WHILE

vasya
Спасибо огромное

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson