MySQL更新表为null,但得到警告

MySQL更新表为null,但得到警告,mysql,null,Mysql,Null,我使用以下查询来更新表: 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

我使用以下查询来更新表:

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    |       |
+-----------------+--------------+------+-----+---------+-------+

关于这个问题的更新:由于某些原因,当我在几天后运行相同的查询时,警告信息消失了

此消息表示您正在尝试比较WHERE或ON子句中的数字和字符串。尝试关闭严格模式


由于警告计数是18,所以我可以预测的是它正在对18条记录或18次进行比较。

此消息表示您正在尝试比较WHERE或ON子句中的数字和字符串。尝试关闭严格模式


由于警告计数是18,所以我可以预测的是它正在对18条记录或18次进行比较。

可能是您的
c1
字段本质上是
NOT NULL
。您确定您给出了c1=NULL和NOT c1='NULL'?您能提供表的结构吗?@1000111,Vipin,我更新了表的定义,c1字段可以为空。@Akhil,我确实使用c1=NULL。可能你的
c1
字段本质上是
notnull
。你确定你给出了c1=NULL和NOT c1='NULL'?你能提供表的结构吗?@1000111,Vipin,我更新了表的定义,c1字段可以为空。@Akhil,我确实使用c1=NULL。