关于在SQL中使用双精度和准备好的语句删除ROM的问题

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

我尝试在SQL中使用相同的bookID和userID删除一行,但是由于我的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.