繁体   English   中英

如果条目中的内容匹配要求不高,如何从sqlite3数据库查询

[英]How to query from sqlite3 database if content in the entry match small requirement

我想从python查询来自sqlite3 db的数据并将其填充在Listbox但是如果要进行搜索,则必须在提供可将记录插入Listbox之前提供像Harvard University这样的全名。

我想查询像记录Harvard University通过只提供Harvard那么它将输出的所有recordsHavard在它里面的内容对我来说,因为如果我不提供全名也不会填充listbox与任何记录。

欢迎您提出建议以实现这一目标。

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()

我认为您可能必须修改查询。 由于"SELECT * FROM institution WHERE name=?", (data1,)将与您可以尝试使用的输入字符串完全匹配,

"SELECT * FROM institution WHERE name like ?", (data1+'%',)

希望这有效!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM