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;
}