如何为Python Telegram Bot的MySQL数据库查询设置两个WHERE条件参数
多WHERE条件MySQL查询语句修正方案
原代码问题说明
你当前的写法存在3处错误:
- 多查询条件之间缺少逻辑运算符,多个WHERE条件需要用
AND(同时满足)或者OR(满足任意一个)连接 - MySQL中表名属于标识符,不能用单引号
'包裹,需要用反引号`包裹,或者直接省略包裹符 - 既然使用
?占位符做参数化查询,就不需要加f字符串前缀,避免出现SQL注入风险
正确写法示例
如果需要同时满足status和balance两个条件,用AND连接即可:
info = db.execute("SELECT * FROM `storage_users` WHERE status = ? AND balance = ?", [status, balance])
如果需要满足两个条件中的任意一个,把AND换成OR即可:
info = db.execute("SELECT * FROM `storage_users` WHERE status = ? OR balance = ?", [status, balance])
内容的提问来源于stack exchange,提问作者Yurii Krestovskiy
相关产品推荐
相关产品推荐

