2013-04-01 16 views
-1

Предположим, у меня есть таблица с именем 'PRODUCTS', и мне нужно обновить эту таблицу, когда продажа завершена. Есть ли способ объединить все обновления в один оператор SQL?Обновление нескольких строк в таблице в одной команде SQL

В настоящее время у меня есть что-то вроде:

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE='A' 

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE='B' 

... 

не существует более эффективный способ сделать это?

+0

Мммм .. . 'update product set prod_q = prod_q - 1 где prod_code в ('A', 'B', 'C');' (или что-то еще)? – 2013-04-01 16:37:52

+1

@sgeddes дал вам правильный ответ, если вы продаете один из каждого продукта. Однако, если вы продаете 1 из A и 2 из B, отдельные запросы, вероятно, будут наилучшим выбором. –

ответ

3

Это то, что вы ищете - с помощью IN:

UPDATE PRODUCT 
SET PROD_Q=PROD_Q - 1 
WHERE PROD_CODE IN ('A','B') 
1

пытались ли вы

UPDATE PRODUCT SET PROD_Q=PROD_Q-1 WHERE PROD_CODE='A' OR PROD_CODE='B' 

Это обновит для обоих значений prod_code

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