Вот мой запрос:Как написать несколько условий в инструкции CASE?
UPDATE mytable
SET mycol = mycol +
(CASE id
WHEN ? THEN 5
WHEN ? THEN 10
WHEN ? THEN 15
WHEN ? THEN 20
END)
WHERE id IN (?, ?, ?, ?)
Ну мне нужно исследовать еще одно условие для всех этих условий. Поэтому я пишу свой запрос следующим образом:
UPDATE mytable
SET mycol = mycol +
(CASE
WHEN id = ? AND $bool THEN 5
WHEN id = ? AND $bool THEN 10
WHEN id = ? AND $bool THEN 15
WHEN id = ? AND $bool THEN 20
END)
WHERE id IN (?, ?, ?, ?)
Этот запрос работает. Но, как вы видите, я написал постоянное условие ($bool
- это переменная PHP, которая содержит 1
или 0
) несколько раз. Теперь я ищу синтаксис MySQL, который позволяет мне писать $bool
один раз для всех случаев. Это возможно?
Что делать, если '$ bool' является ложным? Какое значение вы хотите, чтобы выражение 'CASE' возвращалось? –
@GiorgosBetsos Если '$ bool' равно * false *, выражение' CASE' должно возвращать ничего ('0'). – stack