我有一個包含一個表(學生)的數據庫(student.db)。
學生的每一行都包含(ID,FName,LName)。
有一個現有的行(0,John,Doe)。
我希望能夠輸入一個變量作爲全名,在數據庫中找到該名稱,並刪除該行。
這就是我想出了...但它似乎不工作:Python SQLite3查詢連接兩個值
import sqlite3
conn = sqlite3.connect('student.db')
c = conn.cursor()
selection = "John Doe"
c.execute('DELETE FROM Students WHERE (FName + " " + LName =?', (selection,))
我沒有得到一個錯誤信息。我猜這是因爲它沒有找到任何匹配WHERE子句的條目。
有沒有一種方法來正確編寫一個WHERE子句,它包含了感興趣的行中的多個值?
我對此很新,所以我很抱歉如果這是一個愚蠢的問題。我正在嘗試創建一個Kivy應用程序,該應用程序創建學生名稱的ListView。然後,您可以從列表中選擇一名學生,然後單擊「刪除」從ListView詞典和數據庫中刪除該學生。
嗯,這裏超級簡單的方法也只是分裂'約翰Doe'兩個,並在查詢中使用'和'。那會讓你超過第一個障礙,但我認爲它可能會在稍後導致問題,因爲名字是非常難以使用的(有些人有一個名字,有些可能有5個等)。在你的例子中,「John Doe」的真正來源是什麼? – roganjosh
是否要將選定內容推送到'FName:Joe'和'LName:Doe',然後在查詢中使用它? – olisch
我不想做分裂的唯一原因是因爲你的名字可能有「Mary Ann」這樣的名字......這可能會導致問題。 名稱「John Doe」來自Python字典。該字典當前被設置爲全名的列表。我敢肯定,字典可以修改,但我試圖按照我發現的Kivy的教程潤色 https://youtu.be/dxXsZKmD3Kk?list=PLGLfVvz_LVvTn3cK5e6LjhgGiSeVlIRwt – JED