如何在MySql update语句中使用用户定义的变量?通过用户定义的变量,我指的是@v:=
下面的语句在没有用户定义变量的情况下运行良好,但不能与它们一起使用。

update amga a left join amgb b on a.itemTempId = b.itemTempId
set @i:= concat(a.itemCountry,'-',a.id), a.itemId = @i, b.itemId = @i
where a.itemId is null or b.itemId is null;

稍后我将在php PDO中使用这个。
这是可行的,但确实使用用户定义的变量
update amga a left join amgb b on a.itemTempId = b.itemTempId
set a.itemId = concat(a.itemCountry,'-',a.id), b.itemId = concat(a.itemCountry,'-',a.id)
where a.itemId is null or b.itemId is null;

最佳答案

请尝试以下语法:

update amga a left join amgb b on a.itemTempId = b.itemTempId
set a.itemId = (@i:= concat(a.itemCountry,'-',a.id)), b.itemId = @i
where a.itemId is null or b.itemId is null;

SQLFiddle demo

关于mysql - MySQL在更新语句中使用用户定义的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25738538/

10-16 08:25