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

Busca com LIKE funcionando de forma estranha


Cristiano-CE

Pergunta

Olá a todos.

Estou programando em C# com MySQL e estou fazendo a seguinte consulta ao banco:

SELECT nome, cpf, apelido FROM clientes WHERE nome LIKE '%a%' AND apelido LIKE '%%' AND cpf LIKE '%%';

Eu quero retornar todos os nomes q possuam uma letra 'a', podendo ou não ter algum cpf, podendo ou nõa ter algum apelido.

Acho q é esta consulta mesmo não é?

O problema é q ele tá retornando todos os nomes q possuem alguma letra 'a', mas q tenham cpf e apelido... e não é o q eu quero.

Tem nome com letra 'a' q não tem apelido, ou q não tem cpf ou q não tem os 2.

O manual do MySQL diz q o caractere '%' significa ZERO ou vários caracteres... então não sei o q está acontecendo, ele era pra me retornar todos os nomes com letras 'a' independente de terem ou não apelido e cpf.

Por favor me ajudem, já rodei a net inteira e não encontrei resposta... será q tenho q mecher por exemplo no charset do banco ou algo assim?

Como construir esta consulta?

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi Cristiano!

Acho que você está tendo problema com o resultado Null que deve estar gravado no campo de sua tabela e Null na comparação não é igual a vazio.

Verifique se é isto. Caso seja tente assim:

"SELECT nome, cpf, apelido

FROM clientes

WHERE nome LIKE '%a%' AND ( apelido LIKE '%%' or isnull(apelido) )

AND ( cpf LIKE '%%' or isnull(cpf) ) "

Assim ele retornará tanto se estiver vazio ' ' ou caso esteja null.

Um abraço!

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...