Consulta MySQL utilizando 3 campos, mas nem todos são utilizados na pesquisa.
Olá pessoal...
Tenho a demanda de um formulário de pesquisa com 3 campos (ID, nome e e-mail), porém o usuário não precisa preencher os 3 campos. Ele pode preencher 1 dos 3 e não consigo fazer a consulta me trazer apenas os registros que o usuário digita... o resultado é a exibição de TODOS os dados armazenados na tabela...
Como resolver esse pepino?!
Abaixo o código:
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE nome_clt% OR email LIKE email_clt%
Obrigado!
Tenho a demanda de um formulário de pesquisa com 3 campos (ID, nome e e-mail), porém o usuário não precisa preencher os 3 campos. Ele pode preencher 1 dos 3 e não consigo fazer a consulta me trazer apenas os registros que o usuário digita... o resultado é a exibição de TODOS os dados armazenados na tabela...
Como resolver esse pepino?!
Abaixo o código:
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE nome_clt% OR email LIKE email_clt%
Obrigado!
Myller Meireles
Curtidas 0
Melhor post
Emerson Nascimento
24/01/2018
Será necessário uma pequena alteração.
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
GOSTEI 1
Mais Respostas
Alec Candia
23/01/2018
Fiquei em dúvida se o correto da sintaxe é como você postou. Tente isso:
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE '%nome_clt%' OR email LIKE '%email_clt%'
Apenas acrescentei aspas simples antes e depois da condição do LIKE.
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE '%nome_clt%' OR email LIKE '%email_clt%'
Apenas acrescentei aspas simples antes e depois da condição do LIKE.
GOSTEI 0
Myller Meireles
23/01/2018
Fiquei em dúvida se o correto da sintaxe é como você postou. Tente isso:
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE '%nome_clt%' OR email LIKE '%email_clt%'
Apenas acrescentei aspas simples antes e depois da condição do LIKE.
SELECT *
FROM clientes
WHERE id = id_clt OR nome LIKE '%nome_clt%' OR email LIKE '%email_clt%'
Apenas acrescentei aspas simples antes e depois da condição do LIKE.
Alec,
Obrigado por sua resposta. A forma que postei foi uma das várias possibilidades que testei e não consegui o resultado que quis.
A sua sugestão, também já tinha testado antes e não deu certo!
Mas, muito obrigado por sua ajuda!
GOSTEI 0
Myller Meireles
23/01/2018
Será necessário uma pequena alteração.
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
Emerson,
Muito bom cara!
Sua sugestão me deu outra visão para problemas como esse.
Fis apenas uns ajustes como segue abaixo:
SELECT * FROM clientes WHERE (clt_id = 0 OR clt_id = id_clt) OR (clt_nome = '' OR clt_nome LIKE %nome_clt%) OR (clt_email ='' OR clt_email LIKE %email_clt%) ORDER BY clt_nome ASC
Você sugeriu o AND entre as condições, mas o resultado que precisa foi alcançado colocando o OR...
Muito obrigado por sua ajudar!!!
GOSTEI 0
Myller Meireles
23/01/2018
Será necessário uma pequena alteração.
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
SELECT *
FROM clientes
WHERE (id_clt=0 OR id=id_clt) AND (nome_clt='' OR nome LIKE '%nome_clt%') AND (email_clt='' OR email LIKE '%email_clt%')
Emerson,
Muito bom cara!
Sua sugestão me deu outra visão para problemas como esse.
Fiz apenas uns ajustes como segue abaixo:
SELECT * FROM clientes WHERE (clt_id = 0 OR clt_id = id_clt) OR (clt_nome = '' OR clt_nome LIKE %nome_clt%) OR (clt_email ='' OR clt_email LIKE %email_clt%) ORDER BY clt_nome ASC
Você sugeriu o AND entre as condições, mas o resultado que precisa foi alcançado colocando o OR...
Muito obrigado por sua ajudar!!!
GOSTEI 0