Python 如果条目中的内容符合小要求,如何从sqlite3数据库中查询

Python 如果条目中的内容符合小要求,如何从sqlite3数据库中查询,python,string,tkinter,sqlite,Python,String,Tkinter,Sqlite,我想从python中查询sqlite3 db中的数据并将其填充到列表框中,但如果我进行搜索,我必须提供全名(如哈佛大学),然后才能将记录插入列表框中 我想通过只提供Harvard来查询像Harvard University这样的记录,然后它会为我输出包含Havard内容的所有记录,因为如果我不提供全名,它将不会在列表框中填充任何记录 我们欢迎您的建议来实现这一目标 import tkinter as tk import sqlite3 conn = sqlite3.connect("STATS

我想从python中查询sqlite3 db中的数据并将其填充到列表框中,但如果我进行搜索,我必须提供全名(如哈佛大学),然后才能将记录插入列表框中

我想通过只提供Harvard来查询像Harvard University这样的记录,然后它会为我输出包含Havard内容的所有记录,因为如果我不提供全名,它将不会在列表框中填充任何记录

我们欢迎您的建议来实现这一目标

import tkinter as tk
import sqlite3

conn = sqlite3.connect("STATS.db")
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS institution(id INTEGER PRIMARY KEY, 
name TEXT)")
conn.commit()
conn.close()


def query_record():
    data1 = e1_search.get()

    conn = sqlite3.connect("STATS.db")
    cur = conn.cursor()
    cur.execute("SELECT * FROM institution WHERE name=?", (data1,))
    row = cur.fetchall()

    for n in row:
        List.insert(tk.END, n)
        print(n)
    conn.close()


root = tk.Tk()
root.geometry("300x300")

List = tk.Listbox(root, width=100)
List.pack()

e1_search = tk.StringVar()
e1 = tk.Entry(root, textvariable=e1_search)
e1.pack()

b = tk.Button(text="Search", command=query_record)
b.pack(side=tk.BOTTOM)

root.mainloop()

我想您可能需要修改查询。 由于从机构中选择*名称=?,数据1, 将与您可以尝试使用的输入字符串完全匹配

从机构中选择*名称,如?、数据1+“%”、


希望这能奏效

你可能想在字符串对象上看到startswith方法。Daaniyaa是否可以让它像哈佛大学那样从中间搜索然后我按大学搜索而不是哈瓦迪发现按大学搜索时记录没有出现,因为当你键入你的大学时,它不在哈佛大学的起始位置出现可以将查询修改为-'%'+data1+'%'。