Обновление части данных одним запросом (нужно красивое решение)

grey109

Новичок
Обновление части данных одним запросом (нужно красивое решение)

Есть таблица с двумя полями: id и статус. Статус может быть 0 или 1.

Задача: нужно у всех id, за исключание первых 10 поменять статус, например с 1 на 0.

Подскажите, как это по красивее сделать?
 

grey109

Новичок
А что не ясно-то?

Таблица:
id / статус
1 / 1
2 / 1
3 / 0
4 / 0
5 / 1
6 / 0
7 / 1
8 / 0
9 / 1
10 / 1
11 / 1
12 / 1
13 / 0
14 / 1
15 / 1

После запроса должно получится:
id / статус
1 / 1
2 / 1
3 / 0
4 / 0
5 / 1
6 / 0
7 / 1
8 / 0
9 / 1
10 / 1
11 / 0
12 / 0
13 / 0
14 / 0
15 / 0
 

rotoZOOM

ACM maniac
Panchous а если у него id не попорядку идти будут ?
update table set status=1-status desc n-10 order by id desc
, где n - это кол-во записей. И если ты их знаешь, то вот ответ.
 

rotoZOOM

ACM maniac
судя по примеру, это никак не по status.
Но в любом случае я с тобой согласен:
grey109 объясняй конкретней по какому столбцу идет сортировка и идет ли она вообще.
 

grey109

Новичок
rotoZOOM
Да, сортировка идет по ИД.

Похоже лучше твоего варианта ничего не придумаешь...
 

zag

Guest
Во, калеки..
update table set status=0 LIMIT 9,18446744073709551615;

RTFM!
 

rotoZOOM

ACM maniac
chira LIMIT в UPDATE имеет только один параметр. Вариант не проходит, я тоже о нем в первую очередь подумал.
 
Сверху