gpt4 book ai didi

java - 具有多个条件的 JDBC 删除查询

转载 作者:行者123 更新时间:2023-11-30 06:12:56 24 4
gpt4 key购买 nike

我一直在努力处理 SQL 删除查询。我希望它删除一行,其中满足 2 个条件。我收到的错误表明我的 SQL 语法在最后一个 ')' 的末尾处是错误的。

String sql = "DELETE FROM course 
WHERE (username_entry = " + username +
" AND course_name = " + courseToDelete.toUpperCase() + ")";

我的变量具有正确的值,并且数据库中的数据完美对应。

最佳答案

以下是原始查询的示例:

DELETE
FROM course
WHERE username_entry = tim AND course_name = chemistry;

当然,这不是有效的 SQL,因为您正在将文本列与被称为 timchemistry 的其他列进行比较。您确实希望上面的查询看起来像这样:

DELETE
FROM course
WHERE username_entry = 'tim' AND course_name = 'chemistry';

换句话说,您需要与正确转义的字符串文字进行比较。但实际上,最好的办法是使用准备好的语句,它会自动处理格式:

String sql = "DELETE FROM course WHERE username_entry = ? AND course_name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, courseToDelete.toUpperCase());
ps.executeUpdate();

关于java - 具有多个条件的 JDBC 删除查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49838633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com