需要在PHP中使用SQL表达式的帮助吗

需要在PHP中使用SQL表达式的帮助吗,php,mysql,sql,Php,Mysql,Sql,如果值为空,我试图在更新时忽略一列,但是如果它不是空的,我希望它更新 到目前为止,我的表达方式如下 $foo = NULL; $query = "UPDATE test SET column1 = IF('{$foo}'='',coloumn1,'' )"; $result = mysqli_query($handle,$query); if(!$result){ echo mysqli_error($handle); } 我面临的问题是,当我将$foo设置为实际值时,column

如果值为空,我试图在更新时忽略一列,但是如果它不是空的,我希望它更新

到目前为止,我的表达方式如下

$foo = NULL;


$query = "UPDATE test SET column1 = IF('{$foo}'='',coloumn1,'' )";
$result = mysqli_query($handle,$query);
if(!$result){
    echo mysqli_error($handle);
}
我面临的问题是,当我将$foo设置为实际值时,column1再次为空


我不知道为什么。如果有人能帮我理解这一点,我将非常感激!谢谢
专栏1?Column1?是哪一个?如果只更新该列,您可能希望在php代码中进行测试,而不是在SQL代码中进行测试。我同意@jcaron。除了更简单之外,它的性能更好…@JovanPerovic当我使用PHP脚本时,它只会将列设置为空。这只是一个示例代码。在我的实际代码中,我有20个科隆感谢您的回复。我从未听说过凝聚函数。在上面的示例中,$foo有时可以为NULL,有时也可以有值。问号在那个地方做什么?问号是SQL语句的占位符。决不应在SQL语句中直接包含变量,而应通过prepare和bind_参数使用参数占位符和参数绑定。
UPDATE test SET column1 = COALESCE(?,column1)