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

使用Python cursor从SQL取数存入元组,无法统计行数求助

问题分析与解决

原代码的问题

  1. SQL语法错误:execute中的SQL语句未闭合,末尾缺少单引号和右括号,会直接导致执行报错。
  2. 统计行数的逻辑错误:row.count('FileName')是在查询结果的元组中查找等于'FileName'的元素数量,但row是多行数据的集合,每个元素是一行的字段值,'FileName'是字段名而非数据值,这个操作完全无法得到行数,只会返回0。
  3. 未使用目标方法:你原本打算用fetchmany(),但代码里误用了fetchall()。

正确实现方式

方式1:用fetchmany()获取数据并统计行数

fetchmany(size=N)会返回包含N行数据的元组,直接用len()就能统计返回的行数:

# 修正SQL语法,执行查询
cursor.execute("select * from temp where File_name ='ABC'")

# 使用fetchmany获取指定行数的数据,size参数指定每次获取的行数
rows = cursor.fetchmany(size=10)  # 示例:每次取10行

# 统计返回的行数
row_count = len(rows)
print(row_count)

方式2:直接用SQL统计总行数(更高效)

如果只是需要统计符合条件的总行数,没必要取出所有数据,直接用SQL的count(*)查询更高效:

cursor.execute("select count(*) from temp where File_name ='ABC'")
total_count = cursor.fetchone()[0]
print(total_count)

补充:如果用fetchall()统计行数

如果确实需要取出所有数据再统计,同样用len()即可:

cursor.execute("select * from temp where File_name ='ABC'")
rows = cursor.fetchall()
row_count = len(rows)
print(row_count)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:40:14