[MySQL] Поменять две строки местами

kruzer25

Есть ключ ID, есть две строки --- надо поменять их ID местами.
Как это можно сделать?
Есть, конечно, вариант поменять ID одной на какой-нибудь 0, ID другой на ID первой, ID первой на ID второй --- но это три операции, придётся возиться с блокировкой таблицы. Или кто-нибудь знает, как выполнить три операции за один запрос?
Но в любом случае, при такой реализации будет происходить перестройка индексов... по идее. этого можно как-то избежать?
---
...Я работаю...

sergei1969

менять местами остальные значения...

kruzer25

А сделать это одним запросом можно?
Или не одним, но чтобы не надо было в программе ничего запоминать для этого?

6yrop

 
 
UPDATE T1
SET Id =
CASE
WHEN Id = 1 THEN 2
ELSE 1
END
WHERE Id IN (1, 2)
 

в MSSQL-е работает, в MySQL тоже должно работать

kruzer25

Спасибо
Оказалось, всё совсем просто...
Оставить комментарий
Имя или ник:
Комментарий: