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。