MALOUDA-PSA 2025-01-15 20:43 采纳率: 85.6%
浏览 7

mysql 5.7 更新数据库错误2


select count(*) from fxj  where stkcode='300896';

结果只有1个, 

update fxj set curarea=7792.8 where stkcode='300896' limit 1;

1172 - Result consisted of more than one row
时间: 0.061s

  • 写回答

3条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    你的问题是关于MySQL数据库的更新操作遇到的错误。你尝试更新的表格是fxj,其中条件stkcode='300896'可能对应多行数据。UPDATE语句的LIMIT 1意味着你只更新找到的第一行数据。然而,MySQL报错信息“Result consisted of more than one row”(结果包含多于一行)意味着查询条件返回了不止一行数据,而你的UPDATE语句尝试只更新一行数据,这造成了冲突。

    要解决这个问题,你可以使用子查询来确定你想更新的确切行。下面是一个可能的解决方案:

    UPDATE fxj 
    SET curarea=7792.8 
    WHERE id IN (SELECT id FROM fxj WHERE stkcode='300896' LIMIT 1);
    

    在这个例子中,我假设你的表有一个唯一的标识符列(比如id),然后我们只更新该查询找到的第一行数据。你需要根据你的实际情况替换id为你表中的实际唯一标识符列名。如果你的表没有唯一标识符列,并且你需要更新所有符合给定条件的行,那么你需要确保更新逻辑适应你的需求,或者重新考虑你的查询条件以确保它们只匹配一行数据。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月15日