Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 15127|Resposta: 0

[Fonte] Uso de IFNULL, NULLIF e ISNULL

[Copiar link]
Publicado em 11/05/2018 13:37:59 | | |
O uso de isnull, ifnull, nullif é o seguinte:

Uso de isnull(expr):Se expr for nulo, então isnull() retorna um valor de 1, caso contrário, retorna 0.
mysql> select isnull(1+1);
-> 0
mysql> select isnull(1/0);
-> 1
Usar = para comparações de valor nulo geralmente está errado.

A função isnull() compartilha algumas das mesmas características do operador de comparação is nulo. Veja a nota sobre é nulo.

Uso do IFNULL(expr1,expr2):

Se expr1 não for NULL, o valor de retorno de IFNULL() é expr1;
Caso contrário, retorna um valor de expr2. IFNULL() retorna um número ou uma cadeia, dependendo do contexto em que é usada.

mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECIONE IFNULL(NULL,10);
-> 10
mysql> SELECT IFNULL(1/0,10);
-> 10
mysql> SELECT
IFNULL(1/0, 'sim');

-> 'sim'

O valor padrão de resultado para IFNULL(expr1,expr2) é o mais "genérico" das duas expressões, na ordem de STRING, REAL ou
INTEIRO。 Suponha uma situação em que uma tabela baseada em expressões, ou MySQL, deve armazenar o valor de retorno de IFNULL() em uma tabela temporária na memória interna:
CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
Neste exemplo, a coluna de teste é do tipo CHAR(4).
Uso de NULLIF(expr1,expr2):  
Se expr1
= expr2 é verdadeiro, então o valor de retorno é NULL, caso contrário o valor de retorno é expr1. Isso é o mesmo que CASO QUANDO expr1 = expr2
ENTÃO NULL ELSE expr1 END é o mesmo.
mysql> SELECT
NULLIF(1,1);

-> NULL
mysql> SELECT NULLIF(1,2);
-> 1
Se os parâmetros não forem iguais, então o MySQL recebe o valor expr1 duas vezes.






Anterior:Teste de desempenho de hardware da CPU do servidor
Próximo:Ao usar MySQL para processar mais de um milhão de níveis de dados, há alguns sensos comuns que precisam ser conhecidos
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com