Что я пытаюсь сделать, это установить некоторые поля в очень простой базе данных из 3 столбцов, которые я использую для управления некоторыми флажками.MYSQL WHEN CASE THEN do nothing
Я хочу установить col_2 в 1, если id находится в списке, оставив состояние col_3 нетронутым. Но если идентификатор не в списке множество col_2 и col_3 в 0.
Это то, что я до сих пор не работает, поскольку это дает мне некоторые предупреждения и изменили значение col_3:
UPDATE t
SET col_2 =
CASE
WHEN id IN (list) THEN 1
WHEN id NOT IN (list) THEN 0
END,
col_3 =
CASE
WHEN id NOT IN (list) THEN 0
END
WHERE id IS NOT NULL;
Любая помощь приветствуется :)
Так просто! Я попытался «ELSE col_3 = col_3» в какой-то момент, но это установило поле в 1, и теперь я вижу свою ошибку в этом. Предупреждение исчезло, теперь вы указали мне правильный запрос. Большое спасибо за помощь: – xgstr
@xgstr: FYI, 'ELSE col_3 = col_3' - подразумеваемое логическое выражение. col_3 всегда равно col_3 -> true -> 1. Подумайте о 'IF (col_3 == col_3) THEN ...' – gbn
Получил это, спасибо снова – xgstr