En gros, il s'agit de
C'est une syntaxe incorrecte qui fait que MySQL pense que vous essayez de faire quelque chose avec une colonne ou un paramètre qui a le type incorrect "DOUBLE".
Apprenez de mon erreur
Dans mon cas, j'ai mis à jour la colonne varchar dans une table. NULL
où la valeur 0
debout. Ma requête de mise à jour était la suivante :
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Maintenant, puisque le type réel de myValue
es VARCHAR(255)
cela donne l'alerte :
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
Et maintenant myTable
est pratiquement vide, car myValue
est maintenant NULL
pour CHAQUE ligne du tableau ! Comment cela s'est-il produit ?
*cris interne*
Plus de 30k lignes ont maintenant des données manquantes.
*les cris intérieurs s'intensifient*
Dieu merci pour les sauvegardes. J'ai pu récupérer toutes les données.
*l'intensité des cris intérieurs diminue*
La requête corrigée est la suivante :
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
J'aimerais que ce soit plus qu'un simple avertissement pour qu'il soit moins dangereux d'oublier ces citations.
*Fin des cris internes*
1 votes
Peut-on déterminer la signification réelle de ce message d'erreur et dans quels cas il apparaît ? Comme il apparaît dans des contextes où une valeur DOUBLE n'est pas impliquée, il semble quelque peu trompeur.
0 votes
Je suppose qu'il essaie de calculer la valeur BOOLEAN de 'Secolul XVI - XVIII' avant AND.
2 votes
Si vous avez "où x = 'x' et y", vous obtiendrez cette erreur obscure et mal conçue.