基本上是什么
这是错误的语法,导致MySQL认为您正在尝试对类型为“ DOUBLE”的列或参数进行操作。
从我的错误中学习
就我而言,我NULL
在值所在的表设置中更新了varchar列0
。我的更新查询是这样的:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
现在,由于实际的类型myValue
是VARCHAR(255)
这个给人的警告:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
现在myTable
几乎是空的,因为myValue
现在NULL
表中的每个行都是空的!这怎么发生的?
*内部尖叫*
现在,超过3万行的数据缺失。
*内部尖叫声加剧*
谢天谢地的备份。我能够恢复所有数据。
*内部尖叫强度降低*
更正后的查询如下:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
我希望这不仅仅是警告,所以忘记这些引文的危险性较小。
*结束内部尖叫*