簡體   English   中英

當我使用 Tkinter 下拉框時,使用 WHERE 子句的 SQlite 查詢沒有給我正確的輸出

[英]SQlite Query using WHERE clause is not giving me the right output when I use a Tkinter drop down box

我正在嘗試創建一個按鈕,可以按級別過濾學生。 出於某種原因,SQlite 沒有查詢我想要的數據,而是給了我一個空列表 ([])。 當我不使用下拉框而只使用輸入框時,它工作正常。

#dropdown
levels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
drop = StringVar()
drop.set(levels[0])
def levelsfunc(event):
    levelsinfo = clickedsub2.get()
dropdownbox = OptionMenu(root, drop, *levels, command=levelsfunc)
#search function
def filterstudents():
    query = "SELECT studentname, level FROM studenttable WHERE level = '%"+dropdown.get()+"%'"
    c.execute(query)
    filtered = c.fetchall()
    print(filtered)

%字符是通配符,當您還使用運算符LIKE時使用它們:

query = "SELECT studentname, level FROM studenttable WHERE level LIKE '%" + dropdown.get() + "%'"

此查詢將返回列level中包含字符串dropdown.get()值的所有行。

或者更好地使用? 占位符:

query = "SELECT studentname, level FROM studenttable WHERE level LIKE '%' || ? || '%'"
c.execute(query, (dropdown.get(),))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM