如果另一列有特定数据,我需要更新一列。
通常,如果我想更新一列,我会执行以下 SQL 查询:
UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
但我想不通的是如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段。
这是我想做的。
- 查看表:phpbb_tree
- 列下:spouses_total
- 如果字段为空(没有数据)
- 更新列: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')
希望有人能告诉我怎么写。我什至不知道是否可以在列中搜索空数据?
最佳答案
您可以使用 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
);
编辑:
请检查这个..
关于mysql - 如果另一列满足特定条件,如何更新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686527/