簡體   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