首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的MySQL字段在更新时重置为空?

问为什么我的MySQL字段在更新时重置为空?
EN

Stack Overflow用户
提问于 2014-01-29 22:19:54
回答 1查看 157关注 0票数 0

我在一个表中有几行,并且我正在查看一个名为activeDeviceHandler的特定字段。有些值是实际的文本,有些值不包含任何内容,例如"“(非空值)。

我只想更新没有该字段值的行。我使用的查询是:

代码语言:javascript
复制
UPDATE activeDevices SET activeDeviceHandler="hello world" 
    WHERE activeDeviceHandler=""

这个查询在PHP中按预期执行,但是当我在MySQL中执行查询时,我的字段的值都变成null,不管它们是否包含文本。

这是非常不寻常的。有没有人能帮上忙或者建议一个替代的查询呢?我试过了

代码语言:javascript
复制
UPDATE activeDevices SET activeDeviceHandler="hello world" 
    WHERE (LENGTH(activeDeviceHandler) < 1)

也一样,但这会产生相同的结果。

EN

回答 1

Stack Overflow用户

发布于 2014-01-29 22:24:22

activeDeviceHandler的类型是什么?如果它是一个枚举,并且您将其设置为一个不是枚举成员之一的值,那么您最终将得到一个空白/空值。例如:

代码语言:javascript
复制
mysql> create table foo (x enum('a','b'));
Query OK, 0 rows affected (0.01 sec)

mysql> insert into foo (x) values ('c'); // 'c' is not in the enum...
Query OK, 1 row affected, 1 warning (0.00 sec) // note the warning here

mysql> select x, length(x), isnull(x) from foo;
+------+-----------+-----------+
| x    | length(x) | isnull(x) |
+------+-----------+-----------+
|      |         0 |         0 |
+------+-----------+-----------+
1 row in set (0.00 sec)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21433760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档