Fórum Consulta MySQL utilizando 3 campos, mas nem todos são utilizados na pesquisa. #590789
23/01/2018
0
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
Curtir tópico
+ 0Post mais votado
24/01/2018
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 Nascimento
Gostei + 1
Mais Posts
23/01/2018
Alec Candia
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
24/01/2018
Myller Meireles
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
24/01/2018
Myller Meireles
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
24/01/2018
Myller Meireles
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
Clique aqui para fazer login e interagir na Comunidade :)