Como criar uma consulta de vários campos diferentes com MYSQL
5 respostas
R
RegisFurtado
Ola pessoal,
Estou precisando criar um método que execute uma consulta de diferentes tipos de campos, por exemplo tenho uma tela na web com os segintes campos:
Nome , telefone , endereço , sexo
Na minha tela de consulta, vou inserir o nome e o sexo e então ira fazer uma consulta com todos os registros atuais existentes no banco com o nome e o sexo que eu digitei… ou seja uma consulta onde pode ser inserido 1 campo ou 2 , 3 ou mais campos… acho que ficou bem explicado… vou colocar o que eu já fiz do meu método…
Obrigado.
De acordo com esse método a minha clausula do select faz a consulta utilizando ‘and’ fazendo com que seleciona somente o registro onde data e vendedor e contato sejam iguais ao da busca, e não é isso que eu quero…
O correto seria armazenar esses valores dentro de uma Collection, mandar via request para o JSP e lá ler esses dados.
Faz uma pesquisa no fórum ou no google que isso já foi abordado diversas vezes
L
luis.soares
Olá Regis.
Você deve ter uma lista com os campos da consulta no estilo nome/valor. Exemplo
“NOME=‘JOAO’, SEXO=‘M’, CIDADE=‘SP’”. Então você teria uma classe que vai “montar” a sua sql. Ela pode ter um método “parse” que vai percorrer esta lista, e montar a sql. Algo do tipo:
publicclassParser{publicStringgetSQL(Collectionfields){privateStringsql;privateStringfieldName;privateStringfieldValue;for(i=0;i<fields.count;i++){fieldName=...//pega a posição do campo no item da listafieldValue=...//pega a posição do valor no item da listasql=sql+'AND'+fieldName+'='+fieldValue;}returnsql;}}
E ae alguém chama esse método passando a lista de campos/valores, e o método lhe devolve a sql pronta para ser executada.
Abraço !
R
RegisFurtado
A duvida não é pegar todos os dados do select…
A duvida é como realizar uma busca no meu banco com dados inseridos pelo usuario em uma tela minha em .jsp , onde se o usuario digitar nome= x , busca todos os nomes com x e se ele colcar nome = x e sexo =y lista todos os nomes e sexo iguais ao que ele digitou… ± isso,procurei alguns tópicos relacionados e nada… não tenho conhecimento sobre servlet… gostaria de fazer usando somente jsp…
R
RegisFurtado
Muito obrigado, já estou implementando sua solução aqui ! Tenho certeza de que vai funcionar ! Valeu pela ajuda. :lol:
W
wellington_marinheir
Tente assim:
String sql = “select * from tbatendimento where nome like '” + nome + “%’ and sexo like '” + sexo + “%’ and outrocampo like '”+ data +"%’";
A função like concatena as opções, se voce não informar nada, ele trará todos…