【发布时间】:2020-05-20 10:33:26
【问题描述】:
我正在使用此查询来更新行并获取更新的 ID。但在 mysql 更新后,我收到此警告:“1287 在表达式中设置用户变量已被弃用,将在未来版本中删除。考虑替代方案:'SET variable=expression, ...', or 'SELECT expression(s) INTO变量'”。如何重写我的查询以使其与未来的 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;
【问题讨论】:
标签: mysql sql-update