MYSQL -- NULL值的处理

2 02 3 年,当我学习MySQL时,我发现处理零值是最大的限制。
例如,我的一个朋友遇到了一个问题。
他想知道员工的工资,但是如果工资字段为空,他想显示0。
这时候IFNULL函数就派上用场了,如下: SELECT IFNULL (salary, 0) FROM员工;可以付费
还有一次,当我在做用户查询时,我想找到那些没有电子邮件地址的用户。
这时候ISNULL函数就非常有用了,比如:SELECT name FROM users WHERE ISNULL(email);这样可以过滤掉具有 NULL 电子邮件地址的用户。

同事在清理数据的时候,发现一条记录的某个字段的值和另一个字段的值是一样的。
他想让那些价值观化为乌有。
这次就用到了NULLIF函数。
用法如下: SELECT NULLIF(column_a,column_b) FROM table;如果column 和column_b 相同,则返回NULL。

还有一次,当我编辑联系人信息时,有些联系人没有电话号码,我想将其替换为默认值。
这时候COALESCE函数就非常有用了,例如:COALO(phone, home_phone, 'N/A') from contact;首先它会返回phone,如果phone为NULL,则返回home_phone,最后如果home_phone也为NULL,则返回“N/A”。

在使用这些功能时,有一些细节需要注意。
例如,使用=或!=不能直接匹配NULL。
您必须使用 ISNULL 或 ISNOTNULL。
还有一个 NUMBER 忽略零值并计算所有行。

综上所述,处理空值的方法有很多种,您应该根据自己的具体需求选择合适的函数。
我的朋友最终选择了IFNULL,而我的同事则使用了COLOCO,效果非常好。
这取决于您,在特定站点上处理任何商品仍待处理。

mysql字段值怎么修改

说白了,MySQL中有四种修改数据的方式。

UPDATE是最常用的。
语法为表名SET字段名=新值WHERE条件。
例如,要更改 users 表的 name 字段,请使用 UPDATE users SET name='JohnSmith' WHERE id=1
ON DUPLICATE KEY UPDATE 处理冲突。
如果插入数据时主键或唯一键重复,则更新该行。
语法为 INSERT ... VALUES ... ON DUPLICATE KEY UPDATE 字段 = 新值。

REPLACE是先删除再插入。
如果主键或唯一键重复,请先删除该行,然后插入新行。
替换用户(id,名称)值(1 ,'JohnSmith')。

MERGE 仅在 MySQL 8 .0 中可用。
但实际中很少使用,一般使用ON DUPLICATE KEY UPDATE。

说白了,UPDATE是最灵活的。
ON DUPLICATE KEY UPDATE 处理冲突。
REPLACE很简单,但是会删除数据。
MERGE基本不用。

如何选择? 看看现场。
但记得带上WHERE条件,不要误改。

您具体想要更改哪些数据?