MySQL 在进行update语句修改时候,判断两个字段是否相等,但是被修改的字段为null,为什么就会判断不到是否不等
时间: 2024-05-05 17:21:25 浏览: 11
在MySQL中,判断两个字段是否相等时,如果其中一个字段为NULL,则无法使用等于号(=)进行比较,因为NULL代表未知的值,不等于任何值,包括NULL本身。所以使用等于号进行比较时,结果永远为false。
如果需要比较NULL值,可以使用IS NULL或IS NOT NULL来判断一个字段是否为NULL。如果要判断两个字段是否不相等,可以使用IS NOT NULL和<>操作符,例如:
```
UPDATE table SET col1 = 'new_value' WHERE col2 IS NOT NULL AND col1 <> 'new_value';
```
这样就可以避免被修改的字段为NULL时的判断问题。
相关问题
mysql update 用isnull判断传入的值是为空,如果为空就不修改改字段
可以使用如下语句:
UPDATE table_name SET column_name = IFNULL(new_value, column_name) WHERE condition;
其中,IFNULL函数用于判断传入的值是否为空,如果为空则使用原来的值,否则使用新值。condition是更新的条件,可以根据具体情况进行设置。
steram 判断两个集合里的某个字段是否相等,相等就更新数据到mysql
您可以使用MySQL中的内部联接(INNER JOIN)来比较两个表中的相同字段。您可以使用以下查询来更新一个表中的数据:
UPDATE table1
INNER JOIN table2 ON table1.field_name = table2.field_name
SET table1.field_to_update = new_value
WHERE condition;
其中,table1是要更新的表,table2是要比较的表,field_name是要比较的字段,new_value是要更新的值,condition是要更新的行的限制条件。