You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 14:15:25