Hola Quiero actualizar una tabla como de seguidorescolumnas con valores nulos Actualizar
update userloginstats set logouttime= sysdate where logouttime= null;
Pero no actualizó las columnas con valores nulos. lo que está mal
Hola Quiero actualizar una tabla como de seguidorescolumnas con valores nulos Actualizar
update userloginstats set logouttime= sysdate where logouttime= null;
Pero no actualizó las columnas con valores nulos. lo que está mal
cambiarlo a
...where logouttime is null;
^^^^^^^
NULL
es un valor especial y no podemos utilizar el operador =
habitual con él.
Desde el Oracle documentation for NULL:
para detectar si existen valores nulos, utilice sólo las condiciones de comparación es nulo y no es nulo. Si utiliza cualquier otra condición con nulos y el resultado depende del valor del nulo, entonces el resultado es desconocida debido nula representa una falta de datos, un nulo no puede ser igual o diferente a cualquier valor o a otro nula
logouttime is null
, no = null
. null
nunca es igual a nada, ni siquiera a sí mismo. Por lo tanto, el operador is
.
Es necesario utilizar is null
no = null
update userloginstats set logouttime= sysdate where logouttime is null;
no se puede comparar con los valores NULL =.
Utilice esta:
update userloginstats set logouttime= sysdate where logouttime is null;
Para los nulos debe utilizar "IS NULL" o "no es nulo" más que el operador =. Esto se debe a que null no es técnicamente ni verdadero ni falso, sino que es la ausencia de un valor en ambos sentidos.
La mayoría de los lenguajes de programación normalmente asocian nulo con falso para mayor comodidad (y, por lo tanto, habilita el uso del operador =), pero SQL adopta un enfoque más purista, correcta o incorrectamente.