mysql v8.0.13警告1287在表达式中设置用户变量已被弃用,并将在将来的版本中删除

b5lpy0ml  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(735)

在mysql v8.0.13中执行以下查询会导致此错误:
0行受影响,1个警告:1287在表达式中设置用户变量已被否决,并将在将来的版本中删除。请在单独的语句中设置变量。

SET @i = -1;

UPDATE `tb_test`
SET `order` = (@i := @i + 1)
ORDER BY `order` ASC;

关于如何在单独的语句中设置变量有什么建议吗?

8yoxcaq7

8yoxcaq71#

这确实是一个暗中拍摄(从未使用过mysql),但查看文档时,它说:
“MySQL8.0.13不赞成在set以外的语句中设置用户变量。mysql 9.0中可能会删除此功能。”
(我的)。
所以问题可能是你不使用set就增加了@i?你能用一个显式集合重写这个,看看它是否有用吗?

相关问题