微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MySQL 5.7 使用列和 MAX() 值进行数学运算

如何解决MySQL 5.7 使用列和 MAX() 值进行数学运算

我有一个临时表,其中一列是从 1 枚举的。我想获取一个表中某列的 MAX() 值,并将其添加到临时表中的所有列中。我用这样的变量试了一下:

SET @cc_maxguid = SELECT MAX(guid) FROM item_instance;
UPDATE tempItems SET guid = guid + @cc_maxguid WHERE owner_guid = '..targetGUID..';

虽然 targetGUID 是从 LUA 脚本的变量中添加的。 响应是:Error Code: 1064. You have an error in your sql Syntax; check the manual that corresponds to your MysqL server version for the right Syntax to use near 'SELECT MAX(guid) FROM item_instance' at line 1

所以基本上例如这个tempItems

guid  A  B
  1   5  6
  2   4  7 
  3   3  8

如果 item_instance 的 MAX(guid) 值为 20 应该变成

guid   A  B
 21    5  6
 22    4  7 
 23    3  8

如何调整我的查询以使其请求并添加 MAX(guid) 值?

解决方法

当您尝试更新 MySQL 中的表并在更新条件中使用相同的表时,会发生此错误。

SET @cc_maxguid = (SELECT MAX(guid) FROM item_instance);
UPDATE tempItems SET guid = guid + @cc_maxguid WHERE owner_guid = '..targetGUID..';

以上查询应该可以正常运行。如果您没有分享查询的其他部分,请告诉我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。