Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) OR / AND ?


Guest Rafael Oliveira

Pergunta

Guest Rafael Oliveira

OLA

Gostari de saber porque quando uso o AND o Mysql retorna a msg empty set

SELECT cod_filial FROM filial where (cidade like 'Campinas') and (cidade like 'Rio de Janeiro');

agora quando eu uso o or no lugar do end funciona perfeitamente....

o certo não seria utilizar o and (e) pois eu quero selecionar o codigo de Campina e o codigo do Rio de Janeiro.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
SELECT cod_filial FROM filial where (cidade like 'Campinas') and (cidade like 'Rio de Janeiro');

Rafael Oliveira, se você prestar bem atenção no que esta consulta representa para o banco, você verá que está perfeitamente correta a apresentação do resultado apenas com o OR.

Vejao que é pedido ao banco: selecione cod_filial da tabela filial onde a cidade "seja" Campinas e a cidade "seja" Rio de Janeiro

agora, sabendo que esta avaliação (teste da cláusula where) será confrontado com cada linha da tabela filial para retornar o cod_filial de acordo com a condição, como poderia em uma linha, o campo cidade conter ao mesmo tempo dois valores (Campinas e Rio de Janeiro)?

Não tem como, não é?!

Assim, ao usar o OR, a linha onde aparece cidade igual a Campinas é retornada pelo select, bem como a outra linha avaliada que contenha Rio de Janeiro também será!

É assim com qualquer banco.

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Visitante
SELECT cod_filial FROM filial where (cidade like 'Campinas') and (cidade like 'Rio de Janeiro');

Rafael Oliveira, se você prestar bem atenção no que esta consulta representa para o banco, você verá que está perfeitamente correta a apresentação do resultado apenas com o OR.

Vejao que é pedido ao banco: selecione cod_filial da tabela filial onde a cidade "seja" Campinas e a cidade "seja" Rio de Janeiro

agora, sabendo que esta avaliação (teste da cláusula where) será confrontado com cada linha da tabela filial para retornar o cod_filial de acordo com a condição, como poderia em uma linha, o campo cidade conter ao mesmo tempo dois valores (Campinas e Rio de Janeiro)?

Não tem como, não é?!

Assim, ao usar o OR, a linha onde aparece cidade igual a Campinas é retornada pelo select, bem como a outra linha avaliada que contenha Rio de Janeiro também será!

É assim com qualquer banco.

Abraços

:lol: hum entendi , muito obrigado pela explicação

com base no que você falou fiz uma experiencia, e obtive as mesmo saidas

select consumo from energia where cod_filial = 3 and (periodo > 2 and periodo < 5); ----> utilizando o AND

select consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o OR

valeu mesmo obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
:lol: hum entendi , muito obrigado pela explicação

com base no que você falou fiz uma experiencia, e obtive as mesmo saidas

select consumo from energia where cod_filial = 3 and (periodo > 2 and periodo < 5); ----> utilizando o AND

select consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o OR

valeu mesmo obrigado

Como melhores práticas, para obter o efeito acima, você deve utilizar o BETWEEN em lugar de (periodo > 2 and periodo < 5) ou

(periodo=3 or periodo=4).

Exemplo:select consumo from energia where cod_filial = 3 and periodo BETWEEN 3 and 4;

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rafael Oliveira
:lol: hum entendi , muito obrigado pela explicação

com base no que você falou fiz uma experiencia, e obtive as mesmo saidas

select consumo from energia where cod_filial = 3 and (periodo > 2 and periodo < 5); ----> utilizando o AND

select consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o OR

valeu mesmo obrigado

Como melhores práticas, para obter o efeito acima, você deve utilizar o BETWEEN em lugar de (periodo > 2 and periodo < 5) ou

(periodo=3 or periodo=4).

Exemplo:select consumo from energia where cod_filial = 3 and periodo BETWEEN 3 and 4;

hum.. obrigado

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...