SQLite3动态SQL查询优化:如何忽略用户未输入的查询条件?
问题
我需要实现用户查询SQL数据库的功能,用户输入两个查询参数:
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'时,查询能正常返回结果;但如果其中一个参数为空(比如type未输入),查询会返回空表,因为当前SQL要求两个条件必须同时满足。
我希望SQL语句能自动忽略为空的参数,虽然用if语句动态拼接SQL可以实现,但会让代码变得杂乱,有没有更优雅的解决方案?我尝试过相关方法,但依然返回空表。
内容的提问来源于stack exchange,提问作者ruthpozuelo
相关产品推荐
相关产品推荐

