我正在python
中执行此代码from sqlite3 import dbapi2 as sqlite
con = sqlite.connect("db.sqlite")
cur = con.cursor()
surname = "'%atton%'"
cur.execute("select id from singers where surname like :surname", locals())
cur.close()
con.close()
在此代码cur.rowcount == -1
之后,但Patton在数据库中。
我的SQL语句不好吗?
谢谢
答案 0 :(得分:5)
您使用的DB-API参数化(您应使用它,不要更改它)意味着姓氏将自动被引用或转义。您应该从surname
字符串中删除内部引号。
surname = "%atton%"
cur.execute("select id from singers where surname like :surname",
dict(surname=surname))