我正在使用这个查询更新行,并获得更新的ID。但在mysql更新后,我得到了这个警告。"1287 在表达式中设置用户变量已被废弃,并将在未来的版本中删除。考虑替代方案。'SET variable=expression, ...', 或'SELECT expression(s) INTO variables(s)'"。我如何重写我的查询,使其与未来的mysql版本兼容?
SET @ids_1012:=NULL;
WITH cte AS
(SELECT a.id FROM a
INNER JOIN b ON a.sha1=b.sha1
WHERE state=0
ORDER BY `a`.`priority` DESC LIMIT 16)
UPDATE a
INNER JOIN cte USING(id)
SET state=1
AND (SELECT @ids_1012:=CONCAT_WS(',', id, @ids_1012));
SELECT @ids_1012;
row_number()和rank()是我希望有人在我试图修复这个MySQL错误时告诉我的函数。
[1287] 在表达式中设置用户变量已被废弃,并将在未来的版本中删除。请考虑其他替代方案。'SET variable=expression, ...',或者'SELECT expression(s) INTO variables(s)'。