Поміняти id рядків місцями в базі mysql, mysql

Є кілька рядків в базі і треба щось міняти у них id місцями.
Підкажіть будь ласка запит.
якщо просто виконувати запит UPDATE table SET id = 234 WHERE id = 233
то він видає помилку так як не можна робити id з однаковими значеннями.
тобто Їх необхідно поміняти одночасно або як то по іншому.
Доповнено (1).> Японський Городовий
Блін вистачить фігню писати ...
Просто випадково завантажили в нетой послідовності позиції і треба цю справу поправити ...
І все геморой якраз і в тому що сортування позицій в каталозі йде по ID ...

краща відповідь Дізнатися тимчасовий ід, який гарантовано унікальний.

Зазвичай це може бути -1, якщо в таблиці ід йдуть по зростанню

а потім серія команд

update table set id = -1 where id = 233
update table set id = 233 where id = 234
update table set id = 234 where id = -1

якщо ж в таблиці вже є негативні, або негативні не можна використовувати - треба просто дізнатися унікальний новий ід і використовувати його замість -1.

Але взагалі якщо вам доводиться міняти ID - значить, щось в базі даних неправильно спроектоване. Бо ключ - він на те і ключ, щоб до НЬОГО прив'язувати дані, а не навпаки.

Як завжди, дебіли заплюсовалі ідіотський відповідь.
На ідіотський, зрозуміло, питання.

Strannik, якщо у тебе є хоч крапля мозку в голові, то спробуй зрозуміти
Якщо необхідно поміняти id місцями, то або поле id взагалі не потрібно, або не потрібно його змінювати. Оскільки весь сенс Автоінкрементний ідентифікатора в тому, що він прив'язаний до своєї рядку.

А завдання, що стоїть перед тобою, вирішується по-іншому. Якщо ти її опишеш, то тобі розкажуть, як робити правильно.

Ти не мандрівник, ти ідіот.

Відповідь не ідіотський, а вирішує поставлене запитання.

Необхідність такої дії - це інше питання. Може у нього в базі поле ID зовсім не ідентифікатор? У будь-якому випадку, звичайно, ід міняти не можна. Це невірне проектування. Але якщо дуже треба - відповідь вище.

Писар дебіли. Звідки ви беретеся?
ви і на запитання на кшталт "як підпалити будинок" будете так само знизувати плечима - "а чо - на поставлене запитання відповіли, а навіщо йому це, ми не знаім"

Японський Городовий, так, мабуть тут одні дебіли, один ти - розумний.

Здебільшого так і є.
за ті півроку, що я сюди заходжу, бачив всю людину 3-4 з головою на плечах, і хоч щось розуміли в питанні, на який відповідають.
в іншому це піонери, котрі зайшли спитати, як позбутися від прищів, побачили на головній питання і вирішили поучаствать

Японський Городовий, що не завантажуйте новачків. =)
Strannik, але все ж проблема у вас тут спостерігається, id вони на те і id. Для сортування краще створіть додаткове, менш константне, поле. Та й взагалі, перший раз Віже сортірувку по id, зазвичай за датою, сумою, розміром ...

Да уж, така перепалка ... Хоча я якось теж намагався міняти автоінкрементний ID через pma, в результаті прийшов до рішення, яке вказав andrey tretyakov. Є ще більш черезжопние методи, але ми про них промовчимо.
Японському Городовому треба навчитися посміхатися у відповідь на такі, в принципі, ламерскіе питання. Поки зуби на місці.

Схожі статті