ПОМОГИТЕ с update в MySQL
От: LOH  
Дата: 11.07.04 09:04
Оценка: 1 (1)
Нужно сделать следующую вещь.Допустим есть таблица с двумя полями(id , pole(int))
Мне надо прибавить еденицу в поле pole где id = 30, 50 и 60.
Ну в общем надо чтобы прибавилсь по еденице в поле pole на строках c номером id = 30 id = 50 id =60
Как это сделать?
Re: ПОМОГИТЕ с update в MySQL
От: vvaizh http://izh-test.sourceforge.net/
Дата: 11.07.04 09:08
Оценка:
Здравствуйте, LOH, Вы писали:

LOH>Нужно сделать следующую вещь.Допустим есть таблица с двумя полями(id , pole(int))

LOH>Мне надо прибавить еденицу в поле pole где id = 30, 50 и 60.
LOH>Ну в общем надо чтобы прибавилсь по еденице в поле pole на строках c номером id = 30 id = 50 id =60
LOH>Как это сделать?

update таблицы set pole=pole + 1 where id=30 or id=50 or id=60;


http://dev.mysql.com/doc/mysql/ru/UPDATE.html
http://izh-test.sourceforge.net/russian/introduction.html
Re: ПОМОГИТЕ с update в MySQL
От: Paranoik  
Дата: 11.07.04 09:25
Оценка: 12 (1)
Здравствуйте, LOH, Вы писали:

LOH>Нужно сделать следующую вещь.Допустим есть таблица с двумя полями(id , pole(int))

LOH>Мне надо прибавить еденицу в поле pole где id = 30, 50 и 60.
LOH>Ну в общем надо чтобы прибавилсь по еденице в поле pole на строках c номером id = 30 id = 50 id =60
LOH>Как это сделать?

Незнаю, как MySQL, но в других серверах Я обычно так пишу:
update таблица
set pole = pole + 1
where id in (30, 50, 60)
Дружба не наследуется и не транзитивна.
©Бьерн Страуструп
Re: ПОМОГИТЕ с update в MySQL
От: Astaroth Россия  
Дата: 11.07.04 09:31
Оценка:
Здравствуйте, LOH, Вы писали:

LOH>Нужно сделать следующую вещь.Допустим есть таблица с двумя полями(id , pole(int))

LOH>Мне надо прибавить еденицу в поле pole где id = 30, 50 и 60.
LOH>Ну в общем надо чтобы прибавилсь по еденице в поле pole на строках c номером id = 30 id = 50 id =60
LOH>Как это сделать?

Что мешает сделать это в несколько запросов?

<?PHP
    $res = mysql_query("select id, pole from table where ((id=30) | (id=50) | (id=60))");
    while($row = mysql_fetch_array($res))
        mysql_query("update table set pole=".($res[1]+1)." where id=$res[0]");
?>


Ну или что-то в этом духе...
Медленно, криво, но работает.
WinAmp играет: Elvis Presley — Such A Night
http://livejournal.com/users/breqwas
Re[2]: ПОМОГИТЕ с update в MySQL
От: vvaizh http://izh-test.sourceforge.net/
Дата: 11.07.04 09:32
Оценка:
Здравствуйте, Paranoik, Вы писали:

P>Здравствуйте, LOH, Вы писали:


LOH>>Нужно сделать следующую вещь.Допустим есть таблица с двумя полями(id , pole(int))

LOH>>Мне надо прибавить еденицу в поле pole где id = 30, 50 и 60.
LOH>>Ну в общем надо чтобы прибавилсь по еденице в поле pole на строках c номером id = 30 id = 50 id =60
LOH>>Как это сделать?

P>Незнаю, как MySQL, но в других серверах Я обычно так пишу:

P>
P>update таблица
P>set pole = pole + 1
P>where id in (30, 50, 60)
P>


да да, точно, в мускуле оно тоже есть..
http://dev.mysql.com/doc/mysql/ru/Comparison_Operators.html

expr IN (value,...)
Возвращает 1, если выражение expr равно любой величине из списка IN, иначе — 0. Если все величины — константы, то они оцениваются в соответствии с типом выражения expr и сортируются. Поиск элемента в этом случае производится методом логического поиска. Это означает, что функция IN является очень быстрой, если список значений IN состоит полностью из констант. Если expr является зависимым от регистра строковым выражением, то сравнение строк производится с учетом регистра: mysql> SELECT 2 IN (0,3,5,'wefwf');
-> 0
mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');
-> 1

Начиная с 4.1 (в соответствии со стандартом SQL-99), IN возвращает NULL не только если выражение в левой части является NULL, но также если не найдено соответствия в списке и одно из выражений в списке является величиной NULL.
expr NOT IN (value,...)
То же справедливо и для функции NOT (expr IN (value,...)).

http://izh-test.sourceforge.net/russian/introduction.html
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.