我想允许用户查询sql数据库,数据库为here
因此,用户将能够输入他们想要的查询:
csr_city= input("Enter a city >>").lower().strip().replace(' ','')
csr_type = input("Enter a type >>").lower().strip()
然后执行查询:
cur = conn.cursor()
cur.execute('SELECT * FROM crime_scene_report WHERE city=? AND type=? ', (csr_city,csr_type))
rows = cur.fetchall()
rows
如果用户同时输入city='SQL City'
和type='murder'
这两个变量,它会在同一行中找到这两个值,但如果用户保留一个空的ex类型,则它会返回一个空表,因为这两个条件不在同一行中。
我想做的是让SELECT忽略空的变量。我想我可以用if语句来做,但那会造成混乱??有没有更好的方法?
我试过How to ignore the condition that user did not pass in SQLITE?,但对我不起作用,仍然得到空表。
1条答案
按热度按时间yjghlzjz1#
您实际上是在寻找一个SQL查询构建器(比如SQLAlchemy的核心层),但是开始,一些
if
就足够了: