2010-09-13 3 views
0

Как сделать несколько обновлений в одном запросе.запрос нескольких обновлений

Допустим, у меня есть этот запрос

UPDATE table1 
SET 
Order = 1 
WHERE 
ID = 1234 

Но я хочу изменить еще несколько заказов, где идентификаторы 2345 и 2837 и 8399
как бы я сделать это в тот же MySQL Query. Обратите внимание, что Заказ может отличаться от 1. поскольку поле заказа уникально.

ответ

2
UPDATE table1 
SET Order = 1 
WHERE id IN (1234, 2345, 2837, 8399) 

Если вам нужны различные значения Order для каждого идентификатора, то вы, вероятно, хотите поставить цикл в любой программе разговаривает с базой данных.

Edited добавить

Я думал зацикливание в программе, но я вижу, что вы хотите, чтобы выполнить 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" 

Это то, что вы имеете в виду?

+0

отредактировал вопрос – Autolycus

+0

Я запустил это на phpmyadmin..когда я бы поставил цикл в sql? – Autolycus

3
UPDATE table1 
SET 
Order = 1 
WHERE 
ID in (2345,2837,8399) 
1

вы можете обновить несколько строк, но вы не можете установить поле порядка для различных значений, поэтому все поля заказа (с соответствующими ID) будет иметь значение 1

UPDATE table1 SET Order = 1 WHERE ID IN(1234, 2345, 2837, 8399) 
0

Если вы хотите обновите другие заказы с тем же идентификатором 1, используйте инструкцию IN, как опубликовали другие. Если вы этого не сделаете, используйте PDO и параметризованный запрос.

+0

как это сделать ??? – Autolycus

+0

http://stackoverflow.com/questions/330268/i-have-an-array-of-integers-how-do-i-use-each-one-in-a-mysql-query-in-php/330280 # 330280 – sled

Смежные вопросы