在mysql v8.0.13中执行以下查询会导致此错误:0行受影响,1个警告:1287在表达式中设置用户变量已被否决,并将在将来的版本中删除。请在单独的语句中设置变量。
SET @i = -1; UPDATE `tb_test` SET `order` = (@i := @i + 1) ORDER BY `order` ASC;
关于如何在单独的语句中设置变量有什么建议吗?
8yoxcaq71#
这确实是一个暗中拍摄(从未使用过mysql),但查看文档时,它说:“MySQL8.0.13不赞成在set以外的语句中设置用户变量。mysql 9.0中可能会删除此功能。”(我的)。所以问题可能是你不使用set就增加了@i?你能用一个显式集合重写这个,看看它是否有用吗?
1条答案
按热度按时间8yoxcaq71#
这确实是一个暗中拍摄(从未使用过mysql),但查看文档时,它说:
“MySQL8.0.13不赞成在set以外的语句中设置用户变量。mysql 9.0中可能会删除此功能。”
(我的)。
所以问题可能是你不使用set就增加了@i?你能用一个显式集合重写这个,看看它是否有用吗?