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

Python实现含'a'商品涨价及更新行数统计问题求助

解决商品涨价后统计更新行数的问题

问题原因

你写的统计代码输出0,是因为fetchall()返回的是元组列表,每个元素是(Product_name,)这样的元组。原代码里if "a" in i是判断字符串是否存在于元组中,而非元组里的商品名称字符串里,所以条件永远不成立,count始终为0。

解决方案

方案1:修正Python循环统计逻辑

修改循环里的判断逻辑,取出元组中的商品名称字符串再做检查:

# 直接筛选含'a'的商品,减少循环处理量
c.execute("SELECT Product_name FROM products WHERE Product_name LIKE '%a%'") 
b = c.fetchall() 
count = 0 
for i in b:      
    # 取出元组第一个元素(商品名称),再判断是否包含'a'
    if "a" in i[0]:          
        count += 1 
print(count)

如果你的SQL LIKE 配置为不区分大小写(比如MySQL默认规则),可以统一转小写避免遗漏匹配:

if "a" in i[0].lower():

方案2:直接用游标获取更新行数(更高效)

其实不需要额外查询统计,执行UPDATE语句后,通过游标对象的rowcount属性就能直接拿到受影响的行数,这是最简便的方法:

# 执行涨价更新操作
c.execute("UPDATE products SET price = price * 1.1 WHERE Product_name LIKE '%a%'")
# 获取本次更新受影响的行数
update_count = c.rowcount
print(f"更新了{update_count}条记录")
con.commit()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 11:42:39