1

在我的 mysql 用户数据中,有两列,分别是 u_id 和 u_name。

如果没有值,我想将 u_name 更新为 u_id。

UPDATE T_USER_ACCOUNT SET `u_name`=`u_id` WHERE `u_name` = 'NULL'

我运行了这个查询,但它影响了 0 行。

是什么导致了错误?

4

4 回答 4

2

当您想与值进行比较时,不应将 ( =)分配给列。正确的方法是:nullNULL

UPDATE T_USER_ACCOUNT SET `u_name`=`u_id` WHERE `u_name` IS NULL

在您的查询中,

UPDATE T_USER_ACCOUNT SET `u_name`=`u_id` WHERE `u_name` = 'NULL'

您正在搜索u_name字符串VARCHAR值为NULL

于 2012-05-25T05:21:14.137 回答
1

比较NULL使用时IS NULL

WHERE u_name IS NULL

请注意,我改变了两件事:

  • NULL不在引号中。
  • 与比较时使用IS而不是。=NULL
于 2012-05-25T05:20:57.010 回答
0

尝试这个

UPDATE T_USER_ACCOUNT SET `u_name`=`u_id` WHERE `u_name` IS NULL

您应该使用 Is NULL 来检查空值。

于 2012-05-25T05:21:23.777 回答
0

尝试使用IS NULL

UPDATE T_USER_ACCOUNT SET `u_name`=`u_id` WHERE `u_name` IS NULL
于 2012-05-25T05:21:37.523 回答