在MySQL v8.0.13中执行以下查询会导致此错误:
影响0行,1警告:1287在表达式中设置用户变量已被弃用,在以后的版本中将被删除。请改为在单独的语句中设置变量。
SET @i = -1;
UPDATE `tb_test`
SET `order` = (@i := @i + 1)
ORDER BY `order` ASC;
关于如何在单独的语句中设置变量的任何建议?
答案 0 :(得分:0)
这确实是黑暗中的镜头(从未使用过mySQL),但是检查the docs会显示:
“在MySQL 8.0.13中不支持在语句 SET 中设置用户变量。此功能在MySQL 9.0中可能会删除。”
(强调我的)。
所以问题可能出在您不使用SET的情况下增加了@i吗?您可以使用显式SET重写它,看看是否有帮助?