2011-03-20 12 views
12

Tengo una tabla muy grande con dos columnas INT que son nulas en Predeterminado. Esto es un problema porque dado que son campos INT, sería útil en muchos casos si se establecieron originalmente en 0.mysql actualización incremento campo int que es nulo

Así que mis preguntas son, ¿hay alguna manera de ACTUALIZAR e INCREMENTAR (+1) estos campos mientras son así (nulo en Default)? Por cierto .. yo no tenía suerte hasta ahora, parece incrementar sólo funciona cuando el defecto = 0

..o es mi única opción para cambiar la configuración predeterminada a ninguno de nula

Respuesta

26
UPDATE TableName SET column = IFNULL(column, 0) + 1 WHERE ... 

More info on IFNULL. Devuelve el primer argumento si no es NULL, el segundo caso.

1

Intente configurar el campo como NOT NULL para salirse con la suya de modo que se use el valor predeterminado de 0 en lugar de nulo. La otra opción es establecer la columna como cero siempre que sea nula.

UPDATE TableName SET FieldName = '0' WHERE FieldName IS NULL 

Otra alternativa sería emitir IFNULL a devolver 0 en caso de que la columna es nula y luego incrementando la columna.

UPDATE TableName SET FieldName = IFNULL(FieldName,0) 
Cuestiones relacionadas