Guest Rafael Oliveira Postado Abril 13, 2008 Denunciar Share Postado Abril 13, 2008 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 More sharing options...
0 Micheus Postado Abril 14, 2008 Denunciar Share Postado Abril 14, 2008 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 Janeiroagora, 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 More sharing options...
0 Guest Visitante Postado Abril 14, 2008 Denunciar Share Postado Abril 14, 2008 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 Janeiroagora, 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çãocom 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 ANDselect consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o ORvaleu mesmo obrigado Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Abril 15, 2008 Denunciar Share Postado Abril 15, 2008 :lol: hum entendi , muito obrigado pela explicaçãocom 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 ANDselect consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o ORvaleu mesmo obrigadoComo 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 More sharing options...
0 Guest Rafael Oliveira Postado Abril 17, 2008 Denunciar Share Postado Abril 17, 2008 :lol: hum entendi , muito obrigado pela explicaçãocom 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 ANDselect consumo from energia where cod_filial = 3 and (periodo=3 or periodo=4); ------ Utilizando o ORvaleu mesmo obrigadoComo 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 More sharing options...
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