【发布时间】:2016-06-30 17:54:43
【问题描述】:
我使用如下查询来更新表:
UPDATE table SET c1=NULL WHERE c1=2 and Name REGEXP "ABC";
但查询后,我得到:
Query OK, 6 rows affected, 18 warnings (0,00 sec)
警告如下:
+---------+------+-----------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'N ' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'N ' |
| Warning | 1292 | Truncated incorrect DOUBLE value: 'N ' |
...
虽然表中的“NULL”值似乎已正确更新,但为什么会出现警告?剂量重要吗?以及如何摆脱这些警告?
我使用的版本是:5.5.46-0ubuntu0.14.04.2 (Ubuntu)。
列的定义如下。更改了 6 行,但收到 18 个警告:
mysql> describe table;
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
...
| c1 | char(1) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+-------+
关于这个问题的更新:由于某种原因,几天后我运行相同的查询时,警告信息消失了。
【问题讨论】:
-
可能你的
c1字段本质上是NOT NULL。 -
你确定你给了 c1=NULL 而不是 c1='NULL'??
-
能提供表格的结构吗?
-
@1000111,Vipin,我更新了表的定义,c1字段可以为NULL。
-
@Akhil,我确实使用 c1=NULL。