我的搜索请求写为
导入sqlite3
conn = sqlite3.connect('locker_data.db')
c = conn.cursor()
def search1(teacher):
test = 'SELECT Name FROM locker_data WHERE Name or Email LIKE "%{0}%"'.format(teacher)
data1 = c.execute(test)
return data1
def display1(data1):
Display1 = []
for Name in data1:
temp1 = str(Name[0])
Display1.append("Name: {0}".format(temp1))
return Display1
def locker_searcher(teacher):
data = display1(search1(teacher))
return data
这使我可以在搜索输入为“ FishyPower”的情况下搜索包含“ FishyPower先生(赃物先生)”或“ FishyPower先生/赃物先生”的行。但是,当我尝试使用输入“ Swag”进行搜索时,则无法找到同一行。
在下面的搜索中,它应该给了我相同的搜索结果。
该数据库只是一个简单的1x1 sqlite3数据库,其中包含“ FishyPower / Mr Swag”
编辑:从技术上讲,我确实通过将要搜索的列限制为仅“名称”来解决了该问题,但是我希望代码同时搜索“名称”和“电子邮件”列并输出结果,只要在其中一个或两个内进行搜索即可。两列。
Edit2:从locker_data中选择名称,如电子邮件“%{0}%”或名称“%{0}%”是正确的方法。
答案 0 :(得分:0)
我猜想FishyPower先生的电子邮件地址类似于mrFishyPower@something.com
。该查询仅将电子邮件与教师进行比较。如果是
WHERE Name LIKE "%{0}%"
OR Email LIKE "%{0}%"'
您将(可能)获得所需的结果。