mysql.connector fetchall()未返回全部数据的问题求助
MySQL Connector 查询结果行数异常问题排查及替代方案
问题现象
我工作中一直使用mysql.connector操作MySQL,近期发现它无法稳定返回所有查询结果。
执行以下查询代码:
sql = """SELECT cp.location, cpt.created_ts, cpt.amount FROM customer_plan_transactions cpt JOIN customer_plans cp on cp.id = cpt.customer_plan_id WHERE cpt.created_ts like "2022-09%" """ cursor = my_db.cursor() cursor.execute(sql) rows = cursor.fetchall() print(len(rows))
得到的结果是:
4395
但在phpMyAdmin中执行完全相同的SQL查询,返回的结果行数远大于该数值。
诡异的临时解决情况
调整SELECT语句中的字段顺序后,竟然能获取到预期的全部数据:
sql = """SELECT cpt.created_ts, cp.location, cpt.amount FROM customer_plan_transactions cpt JOIN customer_plans cp on cp.id = cpt.customer_plan_id WHERE cpt.created_ts between "2022-09-01" and "2022-10-01" """ cursor = jax_uc.cursor() cursor.execute(sql) rows = cursor.fetchall() print(len(rows))
得到的结果是:
63140
求助问题
这应该是mysql.connector的bug吗?有没有可行的排查思路?另外有哪些可替代的Python MySQL库?
内容的提问来源于stack exchange,提问作者MrDysprosium
相关产品推荐
相关产品推荐

