как сделать несколько обновлений внутри одного запроса.
Предположим, у меня есть этот запрос
UPDATE table1
SET
Order = 1
WHERE
ID = 1234
Но я хочу изменить еще несколько заказов, где ID - 2345 и 2837 и 8399
как бы я сделал это в одном и том же запросе mysql. Обратите внимание, что Заказ может отличаться от 1. поскольку поле заказа уникально.
UPDATE table1
SET Order = 1
WHERE id IN (1234, 2345, 2837, 8399)
Если для каждого идентификатора вам нужны разные значения Order
, вы, вероятно, захотите поместить цикл в любую программу, разговаривая с базой данных.
Отредактировано для добавления
Я думал о запуске в программе, но я вижу, что вы хотите выполнить SQL в интерактивном режиме.
Если вы пытаетесь расслоить последовательность непредсказуемых чисел следующим образом:
UPDATE table1 Order = 1 WHERE id = 1234
UPDATE table1 Order = 2 WHERE id = 2345
UPDATE table1 Order = 3 WHERE id = 2837
UPDATE table1 Order = 5 WHERE id = 8399
UPDATE table1 Order = 8 WHERE id = 8675
... тогда я не уверен, как вы хотите, чтобы это было короче. Вы можете написать хранимую процедуру, которая вызывается следующим образом:
do_table1_update "1,2,3,5,8,13", "1234,2345,2837,8399,8675,309"
Это то, что вы имеете в виду?
UPDATE table1
SET
Order = 1
WHERE
ID in (2345,2837,8399)
вы можете обновлять несколько строк, но вы не можете установить для поля порядка разные значения, поэтому все поля порядка (с совпадающим идентификатором) будут иметь значение 1
UPDATE table1 SET Order = 1 WHERE ID IN(1234, 2345, 2837, 8399)
Если вы хотите обновить другие заказы с тем же идентификатором 1, используйте инструкцию IN, как опубликовали другие. Если вы этого не сделаете, используйте PDO и параметризованный запрос.