2010-10-13 13 views
21

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

+1

Respuesta

42

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

3

logouttime is null, no = null. null nunca es igual a nada, ni siquiera a sí mismo. Por lo tanto, el operador is.

2

Es necesario utilizar is null no = null

update userloginstats set logouttime= sysdate where logouttime is null; 
6

no se puede comparar con los valores NULL =.

Utilice esta:

update userloginstats set logouttime= sysdate where logouttime is null; 
0

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.

Cuestiones relacionadas