Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Diferença entre MySQL NÃO É NULO e !=''


Sim, há uma grande diferença entre um NULL valor e um valor em branco/vazio.

Aqui está um recurso que descreve as diferenças.

Quando myText IS NULL :
  • myText IS NOT NULL avalia como FALSE
  • myText != '' avalia como NULL (que essencialmente se comporta da mesma forma que FALSE neste caso específico que você escreveu)

No entanto, você não deve ter o hábito de tratá-los da mesma forma, pois na maioria das vezes eles se comportarão de maneira diferente:Por exemplo:

Suponha que você tenha uma tabela tbl :
id   text
1    NULL
2    
3    abc

Observação: 1 contém um NULL valor e 2 contém uma string vazia ('' ).

Se você executar a seguinte consulta:
SELECT * FROM tbl WHERE text != ''

... ele retornará o registro 3.

Se você executar a seguinte consulta:
SELECT * FROM tbl WHERE text IS NOT NULL

... ele retornará os registros 2 e 3.