|
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)
|
|