在准备好的语句中使用“like”通配符
理解问题
在数据库查询中,“like”通配符通常用于根据关键字模式搜索数据。当使用准备好的语句来增强查询安全性和性能时,有效地合并“like”通配符可能具有挑战性。
使用PreparedStatement的解决方案
要使用“like” " 在预准备语句中使用通配符,您无需修改 SQL 字符串本身。相反,请将“keyword%”设置在您在语句中设置的值内。以下是针对不同搜索的操作方法类型:
前缀匹配:
// Replace escape characters to prevent conflict with wildcard notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
后缀匹配:
pstmt.setString(1, "%" + notes);
全局匹配:
pstmt.setString(1, "%" + notes + "%");
通过在分配给准备好的语句的值中设置“关键字%”,您可以高效地执行通配符搜索,而不会影响查询安全性或性能。
以上是如何在准备好的语句中使用'Like”通配符?的详细内容。更多信息请关注PHP中文网其他相关文章!