Я пытаюсь запустить сазе, как показано ниже:заявление MYSQL СЛУЧАЙ (если/другое)
UPDATE table SET
COL1 = CASE WHEN COL1 = '0' then 'something' else COL1 end,
COL2 = CASE WHEN COL2 = '0' then 'something' else COL2 end,
COL3 = CASE WHEN COL3 = '0' then 'something' else COL3 end
WHERE ID = '$id_example'
Но я хочу только первый случай, который является «TRUE» для выполнения.
EDIT:
UPDATE utskick SET
DELIMITER //
CREATE FUNCTION f()
BEGIN
CASE
WHEN datum_1 = '0000-00-00' THEN datum_1 = '2020-01-01' ELSE datum_1//
WHEN datum_2 = '0000-00-00' THEN datum_2 = '2020-01-01' ELSE datum_2//
WHEN datum_3 = '0000-00-00' THEN datum_3 = '2020-01-01' ELSE datum_3//
END CASE //
END //
DELIMITER;
CALL f()
WHERE kund_id = '14'
EDIT 2:
UPDATE table SET
CASE
date_1 WHEN date_1 = '0000-00-00' THEN '2020-01-01'
ELSE
CASE date_2 WHEN date_2 = '0000-00-00' THEN '2020-01-01'
ELSE
CASE date_3 WHEN date_3 = '0000-00-00' THEN '2020-01-01'
END
END
END
WHERE id = 23
И я получаю эту ошибку:
Скажите это в когда это выражение: КОГДА (COL2 = '0' AND NOT (COL1 = '0')) и т. Д. – Turo
Нет, не работает. Если оба COL2 и COL3 пусты, оба получают новое значение. Id COL2 пуст. Я хочу, чтобы запрос остановился на нем и не добавил значение в COL3. – Anna
thats etc .: WHEN (COL3 = '0' AND NOT (COL1 = '0' ИЛИ COL2 = '0')) – Turo