You need to enable JavaScript to run this app. Python使用mysql库查询SQL数据库存在的值返回空列表问题
优惠活动
大模型
产品
解决方案
定价
更多

Python使用mysql库查询SQL数据库存在的值返回空列表问题

问题排查及修复方案

核心错误原因

  • 变量传递错误:代码中提取的查询值存储在code变量中,但调用query.execute()时传入的是teamCode变量,二者值不匹配,无法命中数据库中存在的记录。
  • SQL占位符语法错误:参数化查询的%s占位符不需要手动加单引号,MySQL驱动会自动处理字符串的引号包裹与转义,手动加单引号会导致最终执行的SQL出现两层引号,无法匹配真实值。
  • 参数传递格式错误:execute()方法的第二个参数要求是可迭代的序列类型,传递单个参数时需要构造为带尾逗号的元组(如(code,)),否则单个字符串会被按字符拆分为多个参数,导致查询逻辑异常。

修正后代码

code = data['code']
sql = "SELECT 200 FROM mytable WHERE mycolumn = %s;"
query.execute(sql, (code,))
print(str(query.fetchall()))

通用排查技巧

后续遇到同类查询异常时,可打印实际执行的SQL校验逻辑是否符合预期:使用pymysql时可调用query.mogrify(sql, (code,)),使用MySQLdb时可读取query._last_executed属性,直接查看参数拼接后的完整SQL语句。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 17:06:03