如何在使用用户输入where子句的sqlite3表的查询中使用%通配符

时间:2017-03-08 20:38:29

标签: wildcard

我编写了一个查询,允许用户使用4个不同的字段搜索sqlite3数据库中的表。它只会返回数据,如果用户输入的是完全匹配,是否有办法为每个字段放入一张外卡。代码

import sqlite3
conn = sqlite3.connect("lucyartists.db")
cursor = conn.cursor()

#Get user input
print ('Search for an Artist')
print ('You can search by Name, DOB, Movement or Description')
print ('')
name = input("Enter Artists Name: ")
dob = input("Enter Date of Birth: ")
movement = input("Enter Movemment: ")
description = input ("Enter Description: ")
#query database with user input
sql = ("select name, dob, movement, description from artists where name like (?) or dob like (?) or movement like (?) or description like (?)")
values = (name, dob, movement, description)
#Run query
cursor.execute(sql, values)
result = cursor.fetchall()
#print results without quotes and comma separated
print()
print('RESULTS')
for r in result:
print()
print("{}, {}, {}, {}".format(r[0], r[1], r[2], r[3]))

0 个答案:

没有答案