有关在SQL中删除带有双引号和已准备好的语句的问题

问题描述 投票:0回答:1

我尝试在SQL中使用相同的bookIDuserID删除一行,但是由于我的bookID用双引号保存,因此正常删除将不匹配。我该怎么办?谢谢。

String deleteString = "DELETE FROM booksFavourite WHERE userID=? AND bookID=?;";

    try {
        conn = DriverManager.getConnection("someLink");
        ps = conn.prepareStatement(deleteString);
        ps.setInt(1, userID);
        ps.setString(2, bookID);
        int r = ps.executeUpdate();
    }//try 

...

here is my sql table

mysql prepared-statement sql-delete double-quotes
1个回答
0
投票

您可以调整bookID,使其与您的参数匹配。

 String deleteString = "DELETE FROM booksFavourite WHERE userID=? AND trim(both '\"' from bookID)=?;";

您可以在参数上将concat "匹配到bookID上>]

   String deleteString = "DELETE FROM booksFavourite WHERE userID=? AND bookID=concat('\"', ?, '\"');";
© www.soinside.com 2019 - 2024. All rights reserved.