Как обновить столбец, если другой столбец соответствует определенным критериям?
Мне нужно обновить один столбец, если другой столбец содержит конкретные данные.
Обычно, если я хочу обновить один столбец, я делаю следующий SQL-запрос:
UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
Но я не могу понять, как заставить его искать один столбец, и если в этом поле есть какие-то данные, оно должно обновить поле другого столбца.
Вот что я хочу сделать.
- посмотрите в таблицу: phpbb_tree
- под столбцом: супруги
- если поле пустое (не имеет данных)
- обновить столбец: page_template
- обновить с: tree_body_spouse_1.html на: tree_body_single.html
В общем, я знаю, как выполнить "обновление", но не знаю, как сделать так, чтобы он сначала выглядел в одном столбце, и если он пустой (или совпадает), он должен делать следующее:
UPDATE phpbb_tree
SET page_template = replace(page_template, 'tree_body_spouse_1.html', 'tree_body_single.html')
Надеюсь, кто-нибудь скажет мне, как это написать. Я даже не знаю, возможно ли вообще выполнить поиск пустых данных в столбце?
1 ответ
Решение
Вы можете использовать выражение CASE, чтобы выполнить другое условие замены.
UPDATE phpbb_tree
SET page_template = (CASE
WHEN spouses_total is null
THEN replace(page_template, 'tree_body_spouse_1.html', 'tree_body_single.html')
ELSE page_template
END
);
Редактировать:
Пожалуйста, проверьте это..