Select like %nome% (Mysql/Java)
no Mysql, quando quero dar um select em um ou vários usuários utilizando termos parciais, usamos o seguinte comando:
até aqui tudo certo, agora no java eu tenho uma função que conecta ao banco e faz o select
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
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?
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
Curtidas 0
Melhor post
Jones Granatyr
19/10/2016
Olá, você tentou fazer da seguinte forma?
ps.setString(1, "%" + nome + "%");
ps.setString(1, "%" + nome + "%");
GOSTEI 3
Mais Respostas
Michael Batista
19/10/2016
um ótima ideia, não tinha pensado nisso. vlw mesmo cara, deu certo
GOSTEI 1