如何解决准备好的语句java中的OR子句
我们可以在使用 Java 的 PreparedStatement 中使用 OR 子句吗?
PreparedStatement stmt=con.prepareStatement("delete from emp where id=?");
stmt.setString(1,"'MIKE' || 'ANDY'");
int i = stmt.executeUpdate();
System.out.println(i + " records deleted");
解决方法
没有。这不是原始文本替换,您不能放入查询的块中并期望它们被合并。替换占位符的每个内容都会被清理、编码并作为单独的值引用。
但是你可以用 2 个占位符来写:
PreparedStatement stmt=con.prepareStatement(
“delete from emp where id in (?,?)”);
stmt.setString(1,"MIKE”);
stmt.setString(2,“ANDY”);
如果 IN 子句中有很多值,另一种方法是将这些值放在一个表中并连接到它。
,您可以简单地使用两个参数。
PreparedStatement stmt=con.prepareStatement("delete from emp where id=? or id=?");
stmt.setString(1,"ANDY");
stmt.setString(2,"MIKE");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。