Mysql
 sql >> Database >  >> RDS >> Mysql

Utilizzando come jolly nella dichiarazione preparata

È necessario impostarlo nel valore stesso, non nella stringa SQL dell'istruzione preparata.

Quindi, questo dovrebbe andare bene per una corrispondenza di prefisso:

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

o una corrispondenza di suffisso:

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

o una partita globale:

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