у меня есть данные из таблицы Z
+------+-------+-------+
| id | Data | index |
+------+-------+-------+
| 1 | A | 1 |
| 2 | B | 2 |
| 3 | C | 3 |
+------+-------+-------+
и измените индекс позиции с 1 на 3 и с 3 на 1. как обновить запрос в этом случае? если выполнить запрос с индексом условия 1 и установить значение 3, следующий индекс условия 3 и установить значение 1? в результате обновите id 1 и 3 значение index 3.






Используйте выражение CASE:
UPDATE yourTable
SET `index` = CASE WHEN `index` = 1 THEN 3 ELSE 1 END
WHERE `index` IN (1, 3);
Но обратите внимание, что index - это зарезервированное ключевое слово MySQL, поэтому мне пришлось поместить его в обратные кавычки в приведенном выше запросе. Вам следует избегать именования ваших объектов в MySQL с использованием зарезервированных ключевых слов.