У меня есть данные из таблицы Z
+------+-------+-------+
| id | Data | index |
+------+-------+-------+
| 1 | A | 1 |
| 2 | B | 2 |
| 3 | C | 3 |
+------+-------+-------+
и изменить индекс позиции от 1 до 3 и от 3 до 1. как обновление запроса в этом случае? если запустить запрос с индексом условия 1 и установить значение 3, следующее условие 3-го индекса и установить значение 1? в итоговом обновлении идентификатора 1 и 3 значения 3.
Используйте выражение CASE
:
UPDATE yourTable
SET 'index' = CASE WHEN 'index' = 1 THEN 3 ELSE 1 END
WHERE 'index' IN (1, 3);
Но обратите внимание, что index
- это зарезервированное ключевое слово MySQL, поэтому я должен был поместить его в backticks в вышеуказанный запрос. Вы должны избегать присвоения имен вашим объектам в MySQL с использованием зарезервированных ключевых слов.