如何在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/