GARANTIR DESCONTO

Fórum Select like %nome% (Mysql/Java) #564300

19/10/2016

0

no Mysql, quando quero dar um select em um ou vários usuários utilizando termos parciais, usamos o seguinte comando:
select * from usuario where nome like '%Souza%'; 

até aqui tudo certo, agora no java eu tenho uma função que conecta ao banco e faz o select
try {               
             String sql = "SELECT * FROM usuario where nome like ?";
   			PreparedStatement ps = con.prepareStatement(sql);
   			ps.setString(1, nome);

onde a ? equivale a String nome, aqui também esta tudo certo, entretanto eu preciso digitar o nome completo para dar certo.
agora como eu faria se quisesse misturar os 2 conceitos, fazendo com que o java também utiliza-se termos parciais, tentei a seguinte forma e NÃO deu certo
try {               
             String sql = "SELECT * FROM usuario where nome like %?%";
   			PreparedStatement ps = con.prepareStatement(sql);
   			ps.setString(1, nome);

acredito que o erro ocorra por que a ? não é mais reconhecida como a string nome, alguem sabe me dizer a maneira correta de fazer isso?
Michael Batista

Michael Batista

Responder

Post mais votado

19/10/2016

Olá, você tentou fazer da seguinte forma?

ps.setString(1, "%" + nome + "%");

Jones Granatyr

Jones Granatyr
Responder

Gostei + 3

Mais Posts

20/10/2016

Michael Batista

um ótima ideia, não tinha pensado nisso. vlw mesmo cara, deu certo
Responder

Gostei + 1

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar