在使用PreparedStatement进行MySql模糊查询时,遇到一个问题
SELECT COUNT(*) FROM TABLE WHERE BLOG LIKE ?
是可以查询成功的,但是加入了模糊匹配后
SELECT COUNT(*) FROM TABLE WHERE BLOG LIKE "%?%"
却总是查询报错,后来发现sql语句还是需要写为SELECT COUNT(*) FROM TABLE WHERE BLOG LIKE ?
,同时需要把模糊匹配的内容在PreparedStatement的set方法中拼接完成,且注意PreparedStatement索引是从1开始的。
例如:
String sql = "SELECT COUNT(*) FROM TABLE WHERE BLOG LIKE ?";
pstmt = con.prepareStatement(sql);
pstmt.setString(1, "%" + content + "%");