基本的には
MySQLが誤った型「DOUBLE」を持つカラムまたはパラメータを使用して何かを実行しようとしていると考えるのは、これが誤った構文です。
私の間違いから学ぶ
私の場合NULL、値0が立っているテーブル設定のvarchar列を更新しました。私の更新クエリは次のようでした:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
さて、実際のタイプはmyValueis 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!
これが単なる警告ではないので、これらの引用を忘れることはそれほど危険ではありません。
*内部の叫びを止める*