2013-03-18 5 views
0

У меня есть строка MySQL, в которой я хочу использовать оператор CASE. Однако я не думаю, что я делаю это правильно. Мне нужно проверить, установлен ли флаг для определенного значения, а затем обновить этот флаг в зависимости от того, для чего он установлен. Вот мой MySQL:MySQL: проблема с оператором CASE

$sql = 'UPDATE table SET flag = CASE WHEN flag = 2 THEN 0 ELSE flag = 3'

Это действительный SQL? Я хочу сделать это, если для флага установлено значение 2, установите его на 0, иначе установите его на 3. Как мне исправить мой SQL, чтобы он это сделал?

+0

Попробуйте добавить 'END' в конце команды. –

ответ

1

Ваш текущий запрос очень близко, код будет:

UPDATE table 
SET flag = CASE WHEN flag = 2 THEN 0 ELSE 3 END 

Это обновит flag столбец 0, когда flag равно 2, если он не равен 2, то значение будет обновлен до 3.

+0

О, я забыл КОНЕЦ. Хорошо, спасибо, @bluefeet. – sehummel

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