Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果另一列满足特定条件,如何更新该列?_Mysql_Sql_Phpbb - Fatal编程技术网

Mysql 如果另一列满足特定条件,如何更新该列?

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

我需要更新一列,如果另一列有特定的数据

通常,如果我想更新一列,我会执行以下SQL查询:

UPDATE table1
SET field1 = replace(field1, 'oldstring', 'newstring')
但我不知道如何让它查找一列,如果该字段有一些数据,它应该更新另一列的字段

这是我想做的

  • 查看表格:phpbb_树
  • 在下列栏下:配偶总数
  • 如果字段为空(没有数据)
  • 更新列:页面模板
  • 从:tree\u body\u partment\u 1.html更新为:tree\u body\u 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 
                           );
    
    编辑:

    请检查这个


    嗯,只要应用
    where
    标准……我测试了你的建议。但它不起作用。运行时收到以下消息:0行受影响。(查询花费了0.0023秒)我们先将total中的空数据从“空”转换为“0”怎么样,也许这就是问题所在?@Jay Jay我提供了SQL fiddle来说明它工作正常,请看两行,一行相应地修改了空值,另一行则没有。对不起,我之前犯了一个错误。这两个模板都有.html扩展名,之前,我搞错了,用.htm编写了一个。很遗憾,一开始我没有发现。我相信它会像您早期提供的那样工作,但现在由于我将该列的所有空行都转换为0,我需要一个新的修改版本。谢谢!现在可以了。我希望在这些行中的数据为“null”时尝试,以便检查您以前的解决方案。但现在您向我提供了这些附加信息,我现在可以继续使用我的表了。我真的很感激你的建议。现在,当我发现自己处于同样的情况时,我总是可以使用它认为这解决了。