Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Estou com uma dúvida quanto ao branco e null.
A dúvida segue na seguinte situação eu tenho um cadastro de funcionários e tem informações que ele pode deixar em "branco ou nulo", mas eu queria saber se na hora que o campo estiver em branco sem ser preenchido por opção eu envio NULL para o banco de dados ou deixo em branco?
A minha dúvida caso não fique clara é qual ocupa menos à memória na hora de criar uma SELECT ou que deixa o banco de dados mais leve. eu acredito que tem diferença na hora de processamento por isso à dúvida.
Lembre que branco " " é diferente de null.
Falo de pelo menos um espaço em branco.
>
Lembre que branco " " é diferente de null.
Exato .. o banco diferencia isso ! se fosse no PHP .
<?php
$x = '' ;
var_dump ( $x == null ) ; // true
var_dump ( $x == '' ) ; // true
Já no MySQL
mysql> SELECT IF ( '' IS NULL , 'Ok' , 'Nopz' ) t1, IF ( NULL IS NULL , 'Ok' , 'Nopz' ) t2;
+------+----+
| t1 | t2 |
+------+----+
| Nopz | Ok |
+------+----+
1 row in set (0.00 sec)
Empty e Null são 'meramente' iguais, o único problema vai ser na hora de você testar isso, vamos supor, quero todas as linhas cujo o campo X é NULL
WHERE x IS NULL
Só que se estiver empty no banco 'em branco', esse campo não vai ser atingido, daí você tem que fazer um
WHERE x IS NULL OR x = ''
Em desempenho não influencia absolutamente nada.