Mysql 如果另一列满足特定条件,如何更新该列?
我需要更新一列,如果另一列有特定的数据 通常,如果我想更新一列,我会执行以下SQL查询:Mysql 如果另一列满足特定条件,如何更新该列?,mysql,sql,phpbb,Mysql,Sql,Phpbb,我需要更新一列,如果另一列有特定的数据 通常,如果我想更新一列,我会执行以下SQL查询: UPDATE table1 SET field1 = replace(field1, 'oldstring', 'newstring') 但我不知道如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段 这是我想做的 查看表格:phpbb_树 在下列栏下:配偶总数 如果字段为空(没有数据) 更新列:页面模板 从:tree\u body\u partment\u 1.html更新为:tree\u b
UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
但我不知道如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段
这是我想做的
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
);
编辑:
请检查这个
嗯,只要应用
where
标准……我测试了你的建议。但它不起作用。运行时收到以下消息:0行受影响。(查询花费了0.0023秒)我们先将total中的空数据从“空”转换为“0”怎么样,也许这就是问题所在?@Jay Jay我提供了SQL fiddle来说明它工作正常,请看两行,一行相应地修改了空值,另一行则没有。对不起,我之前犯了一个错误。这两个模板都有.html扩展名,之前,我搞错了,用.htm编写了一个。很遗憾,一开始我没有发现。我相信它会像您早期提供的那样工作,但现在由于我将该列的所有空行都转换为0,我需要一个新的修改版本。谢谢!现在可以了。我希望在这些行中的数据为“null”时尝试,以便检查您以前的解决方案。但现在您向我提供了这些附加信息,我现在可以继续使用我的表了。我真的很感激你的建议。现在,当我发现自己处于同样的情况时,我总是可以使用它认为这解决了。