sql >> Base de Datos >  >> RDS >> Mysql

Usar como comodín en una declaración preparada

Debe configurarlo en el valor en sí, no en la cadena SQL de declaración preparada.

Entonces, esto debería funcionar para una coincidencia de prefijo:

notes = notes
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
        "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");

o una coincidencia de sufijo:

pstmt.setString(1, "%" + notes);

o una coincidencia global:

pstmt.setString(1, "%" + notes + "%");