如何在Python中使用变量搜索SQLite3 DB

如何在Python中使用变量搜索SQLite3 DB,python,python-3.x,sqlite,Python,Python 3.x,Sqlite,我目前正在用Python编写一个程序,我需要搜索SQLite3数据库,我希望能够使用变量搜索DB,我将从Tkinter组合框选择(GUI)中获取变量的数据 下面是我的表格代码 db = sqlite3.connect('db.sqlite3') cursor = db.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS depot_racks( id INTEGER PRIMARY

我目前正在用Python编写一个程序,我需要搜索SQLite3数据库,我希望能够使用变量搜索DB,我将从Tkinter组合框选择(GUI)中获取变量的数据

下面是我的表格代码

db = sqlite3.connect('db.sqlite3')
cursor = db.cursor()
cursor.execute('''
            CREATE TABLE IF NOT EXISTS depot_racks(
                id INTEGER PRIMARY KEY,
                rack TEXT,
                rackloc TEXT,
                floorzone TEXT,
                product TEXT,
                serial TEXT,
                status TEXT,
                entdate TEXT,
                servdate TEXT,
                parts TEXT,
                pat TEXT)''')
下面是我尝试使用获取用户选择的变量搜索数据库的代码

def search_all_racks():
    selection = rackTextBox.get()
    cursor.execute("SELECT * FROM depot_racks WHERE product LIKE '%selection%'")
    for row in cursor.fetchall():
        dataArea.insert('end', row)
这将不返回任何内容,是否有方法在SQLite查询中使用
选择
变量


提前感谢

您使用的是字符串文字
'selection'
,而不是变量
selection的值
这是正确的方法:

cursor.execute("SELECT * FROM depot_racks WHERE product LIKE '%' || ? || '%'", (selection,))

通过这种方式,通配符
%
将与字符串
选择值

Mmmmm串连起来。这是stackoverflow语法高亮显示的问题吗?结尾括号似乎也是字符串的一部分。@CoolCloud是的,我也看到了。