Lo que básicamente es
Es una sintaxis incorrecta lo que hace que MySQL piense que está intentando hacer algo con una columna o parámetro que tiene el tipo incorrecto "DOUBLE".
Aprende de mi error
En mi caso, actualicé la columna varchar en una configuración de tabla NULLdonde se encontraba el valor 0. Mi consulta de actualización fue así:
UPDATE myTable SET myValue = NULL WHERE myValue = 0;
Ahora, ya que el tipo real de myValuees VARCHAR(255)esto da la advertencia:
+---------+------+-----------------------------------------------+
| Level | Code | Message |
+---------+------+-----------------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'value xyz' |
+---------+------+-----------------------------------------------+
¡Y ahora myTableestá prácticamente vacío, porque myValueahora está NULLpor CADA FILA en la tabla! ¿Cómo pasó esto?
* gritos internos *
Más de 30k filas ahora tienen datos faltantes.
* los gritos internos se intensifican *
Gracias a Dios por las copias de seguridad. Pude recuperar todos los datos.
* la intensidad interna de los gritos disminuye *
La consulta corregida es la siguiente:
UPDATE myTable SET myValue = NULL WHERE myValue = '0';
^^^
Quotation here!
Desearía que esto fuera más que una advertencia, por lo que es menos peligroso olvidar esas citas.
* Fin de los gritos internos *