我用sqlite3创建了一个数据库,但我无法使用通配符访问和检索数据。
要使用值案例Samsung Galaxy S9 检索h1列,通配符'%?%'不起作用。
我收到错误:
Traceback (most recent call last):
File "regex_query.py", line 13, in <module>
for row in c.execute("SELECT * FROM products WHERE h1 LIKE '%?%' ORDER BY price", (t,)):
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 0, and there are 1 supplied.
这是我的代码。我尝试了各种迭代查询,但它们似乎都没有工作。
为了进行调试,我还将字符串“Samsung”直接插入到查询中并且它可以正常工作。只有问题是那个
import sqlite3
conn = sqlite3.connect('database.db')
c = conn.cursor()
t = 'Samsung'
for row in c.execute("SELECT * FROM products WHERE h1 LIKE '%?%' ORDER BY price", (t,)):
print row
print c.fetchall()
我一直在寻找解决方案几个小时,但我找不到问题所在。感谢。
答案 0 :(得分:1)
除非您使用的是需要VALUES
的sql,否则我认为该方法无效。这应该可以工作
for row in c.execute("SELECT * FROM products WHERE h1 LIKE '%{}%' ORDER BY price".format(t))