SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 27.05.2015 14:36:59

VictorPolkovnikov
Участник
Зарегистрирован: 27.05.2015
Сообщений: 1

Как установить значения подряд в запросе UPDATE.

Добрый день!


Столкнулся вот с какой задачей. Необходимо изменить несколько записей (скажем, 100), идущих в таблице не подряд. Целью является заполнение одного из полей всех записей значениями от n до n + 100. Можно ли это сделать в запросе UPDATE, или придётся как-то сложнее делать?

Спасибо.

Неактивен

 

#2 27.05.2015 21:10:30

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

Re: Как установить значения подряд в запросе UPDATE.

Оказывается нельзя делать присвоение переменных в части set. Нужно извращаться так:

update `таблица`, (select @i:=n-1) x set `колонка`=@i where .. and @i:=@i+1;

Неактивен

 

#3 27.05.2015 21:15:12

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

Re: Как установить значения подряд в запросе UPDATE.

или подзапросом

update `таблица`, (select @i:=n-1) x set `колонка`=(select @i:=@i+1) where .. ;



Ну и если нужно использовать order by или limit, то придется в 2 запроса

set @i:= n-1;
update `таблица` set `колонка`=(select @i:=@i+1) where .. order by ..;

Неактивен

 

Board footer

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