Имя: Пароль:
IT
Админ
MySQL Выбор с условием
0 fantomrik
 
27.03.16
16:14
Коллеги привет!
Есть такой запрос
UPDATE `table` SET `id` = CASE
    WHEN id = 1 THEN 2952
    WHEN id = 2 THEN 4925
    WHEN id = 3 THEN 1592
    END

Возможно ли его модифицировать, если у меня 2 ключевые поля, к примеру `id` и `warehouse` ? Хочу обновить поле, только если комбинация полей принимает нужное

пробовал так
UPDATE `table` SET
`value` = CASE
id = '1' AND warehouse_id = '9'
THEN '0'
END

С ошибкой падает
1 ДенисЧ
 
27.03.16
16:22
UPDATE `table` SET
`value` = CASE WHEN
id = '1' AND warehouse_id = '9'
THEN '0'
END
2 ДенисЧ
 
27.03.16
16:22
точнее

UPDATE `table` SET
`value` = CASE when
id = '1' AND warehouse_id = '9'
THEN '0'
else 'А хрен его знает'
END
3 fantomrik
 
27.03.16
16:28
(2) модифицировал к своим данным

UPDATE `stock` SET
`value` = CASE THEN
product_id = '13076' AND warehouse_id = '9'
THEN '0'
END

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'THEN product_id = '13076' AND warehouse_id = '9' THEN '0' END' at line 2
4 ДенисЧ
 
27.03.16
16:30
case when условие then значение else другое значение end
5 fantomrik
 
27.03.16
16:31
(1) `value` = CASE WHEN

Все сработало, спасибо!
6 ДенисЧ
 
27.03.16
16:32
732 рубля 35 копеек в кассу занести не забудь
7 fantomrik
 
27.03.16
16:39
Ок :)
8 fantomrik
 
27.03.16
16:44
(6)
а ниже условие
WHERE product_id IN (1,2,3) AND warehouset_id IN(9,10,11) можно прикрутить, ускорит выполнение запроса, если много строк обрабатывать?
9 fantomrik
 
27.03.16
16:49
Условие поставил WHERE product_id IN (1,2,3)