调用SDK删除数据库单条数据报错:多WHERE条件语法错误
错误原因
SQL语法要求WHERE子句中的多个过滤条件必须使用逻辑运算符(AND/OR)连接,不能直接用逗号分隔。你代码中DELETE FROM books WHERE title=?, pages=?语句里两个条件之间的逗号违反了该语法规则,是报错的直接原因。你标记的第一个箭头位置的问题判断正确,Python参数元组内的逗号属于正常语法,不存在问题。
修复代码
将删除语句中条件之间的逗号替换为AND即可:
def delete_book(book): c = cursor() with c.connection: c.execute("DELETE FROM books WHERE title=? AND pages=?", (book.title, book.pages)) row_count = c.rowcount c.connection.close() return row_count
优化建议
如果你的books表设计了主键字段(例如自增id),优先使用主键作为删除条件,可避免存在多本同名、同页数的书籍时出现误删的问题。
内容的提问来源于stack exchange,提问作者user16790886
相关产品推荐
相关产品推荐

