我正在尝试构建一个简单的地址簿GUI,其中包含wx.listbox
,其中包含书籍中的所有名称,包括名称,第一个和最后一个。单击后,它将从数据库文件返回附加到名称的信息。现在我只使用姓氏工作,我试图匹配名字和姓氏。我不是,真的,熟悉SQLite 3命令和语法。
该功能如下,现在可以正常工作,但我想将查询更改为:
select * from AddressBook where Last like names[0] and First like names[1]
任何帮助都会很棒!
def onListBox(self, event):
name = event.GetEventObject().GetStringSelection()
names = name.split(',')###names[0]=Last name, names[1] = first name
cursor = db.cursor()
cursor.execute("select * from AddressBook where Last like ?",('%'+names[0]+'%',) )
result = cursor.fetchall()
return result
答案 0 :(得分:1)
评论中的查询应该有效。
这是一个小工作示例:
import sqlite3
conn = sqlite3.connect("test.sql")
cursor = conn.cursor()
cursor.execute("create table address_book (first_name text, last_name text)")
names = [["John", "Smith"], ["Jane", "Smith"]]
for first_name, last_name in names:
cursor.execute("insert into address_book (first_name, last_name) values (?, ?)", (first_name, last_name))
cursor.execute("select * from address_book where first_name like ? and last_name like ?", ("%" + names[0][0] + "%", "%" + names[0][1] + "%"))
print(cursor.fetchall())
打印:
[('John', 'Smith')]