ThiaGonzo Postado Fevereiro 10, 2010 Denunciar Share Postado Fevereiro 10, 2010 Eu to tentando fazer uma consulta no banco e eu programo colocando todas as PK e FK como int porque fica mais facil.então estou tentando fazer uma busca pela aplicação feita em java em uma tabela com 3 inner join.Só que eu preciso usar o Like em todas as colunas.usei o cast, mas ele só funciona se no script da busca não tiver a inner join.o que quero saber o que posso fazer em termos de sql para conseguir fazer essa busca usando o like?Abaixo o codigo da aplicação:public VO_ListRegister getLista(Connection conn, VO_ListRegister listaPeregrino, VO_Form form) { String sql=""; PreparedStatement pstmt=null; ResultSet rs=null; try { sql = " SELECT * FROM tbl_peregrino "; sql += " INNER JOIN tbl_paroquia ON tbl_peregrino.cod_paroquia = tbl_paroquia.cod_paroquia "; sql += " INNER JOIN tbl_cidade ON tbl_peregrino.cod_cidade = tbl_cidade.cod_cidade "; sql += " INNER JOIN tbl_etapa ON tbl_peregrino.cod_etapa = tbl_etapa.cod_etapa "; if (!"".equals(form.getTxt_argumento()) && form.getTxt_argumento()!=null){ sql += " WHERE ("; sql += " txt_nome LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " CAST(cod_paroquia AS VARCHAR(100)) LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " CAST(cod_etapa AS VARCHAR(50)) LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " txt_comunidade LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " CAST(dt_nascimento AS VARCHAR(10)) LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " txt_endereco LIKE '%"+form.getTxt_argumento()+"%' OR "; sql += " CAST(cod_cidade AS VARCHAR(100)) LIKE '%"+form.getTxt_argumento()+"%' "; sql += ") "; } if (!"".equals(form.getTxt_ordem()) && form.getTxt_ordem()!= null){ sql += " ORDER BY "+form.getTxt_ordem(); } pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()){ VO_Peregrino vou = new VO_Peregrino(rs.getString("cod_peregrino"), rs.getString("txt_nome"), rs.getString("cod_paroquia"), rs.getString("cod_etapa"), rs.getString("txt_comunidade"), rs.getString("dt_nascimento"), rs.getString("txt_endereco"), rs.getString("cod_cidade")); vou.setSgl_paroquia (rs.getString("sgl_paroquia")); vou.setTxt_cidade (rs.getString("txt_cidade")); vou.setTxt_etapa (rs.getString("txt_etapa")); listaPeregrino.addItem(vou); } rs.close(); pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } return listaPeregrino; } Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ThiaGonzo
Eu to tentando fazer uma consulta no banco e eu programo colocando todas as PK e FK como int porque fica mais facil.
então estou tentando fazer uma busca pela aplicação feita em java em uma tabela com 3 inner join.
Só que eu preciso usar o Like em todas as colunas.
usei o cast, mas ele só funciona se no script da busca não tiver a inner join.
o que quero saber o que posso fazer em termos de sql para conseguir fazer essa busca usando o like?
Abaixo o codigo da aplicação:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.