如果另一列满足特定条件,如何更新列?
How to update column if another column fulfill specific criteria?
如果另一列有特定数据,我需要更新一列。
通常如果我想更新一列,我会执行以下 SQL 查询:
UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
但我不知道如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段。
这是我想要做的。
- 在table中查找:phpbb_tree
- 列下:spouses_total
- 如果字段为空(没有数据)
- 更新列:page_template
- 更新从:tree_body_spouse_1.html 到:tree_body_single.html
所以基本上,我知道如何做 "update" 部分,但不知道如何让它在一列中排在第一位,如果为空(或匹配),它应该执行以下操作:
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
);
编辑:
请检查这个..
如果另一列有特定数据,我需要更新一列。
通常如果我想更新一列,我会执行以下 SQL 查询:
UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
但我不知道如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段。
这是我想要做的。
- 在table中查找:phpbb_tree
- 列下:spouses_total
- 如果字段为空(没有数据)
- 更新列:page_template
- 更新从:tree_body_spouse_1.html 到:tree_body_single.html
所以基本上,我知道如何做 "update" 部分,但不知道如何让它在一列中排在第一位,如果为空(或匹配),它应该执行以下操作:
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
);
编辑:
请检查这个..