![](/img/trans.png)
[英]Java prepared statement does not allow large strings in the where clause of the query
[英]OR clause in prepared statement java
我們可以在使用 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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.