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
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
以下回复参考:皆我百晓生、券券喵儿等免费微信小程序作答:
你的问题是关于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为你表中的实际唯一标识符列名。如果你的表没有唯一标识符列,并且你需要更新所有符合给定条件的行,那么你需要确保更新逻辑适应你的需求,或者重新考虑你的查询条件以确保它们只匹配一行数据。