Di cosa si tratta fondamentalmente
È una sintassi errata che fa pensare a MySQL che stai provando a fare qualcosa con una colonna o un parametro che ha il tipo errato "DOUBLE".
Impara dal mio errore
Nel mio caso ho aggiornato la colonna varchar in un'impostazione della tabella in NULLcui si trovava il valore 0. La mia query di aggiornamento era così:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Ora, poiché il tipo effettivo di myValueè VARCHAR(255)questo dà l'avvertimento:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
E ora myTableè praticamente vuoto, perché myValueora è NULLper OGNI FILA nella tabella! Come è successo?
* urla interna *
Oltre 30k righe ora hanno dati mancanti.
* le urla interne si intensificano *
Grazie al cielo per i backup. Sono stato in grado di recuperare tutti i dati.
* l'intensità dell'urlo interno diminuisce *
La query corretta è la seguente:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Vorrei che questo non fosse solo un avvertimento, quindi è meno pericoloso dimenticare quelle citazioni.
* Fine urla interna *