我正在将记录从一个表更新到一个数据库到另一个第二个数据库表。 这工作正常。我使用了这个查询。
"UPDATE table1.value1 , table2.value2 SET table1.value1.quantity = table2.value2.qty
WHERE table1.`value1`.`sku` = table2.`value2`.`item` ";
我需要sku哪个号码更新了
我正在使用此查询
SET @uids :=null;
"UPDATE table1.value1 , table2.value2 SET table1.value1.quantity = table2.value2.qty
WHERE table1.`value1`.`sku` = table2.`value2`.`item` AND (SELECT @uids := CONCAT_WS(',', fooid, @uids) )
SELECT @uids;
我无法获得更新的sku的内容
有人知道怎么做吗?
由于
答案 0 :(得分:1)
这是一个有趣的想法。我想知道以下是否有效:
SET @uids := '';
UPDATE table1.value1 t1 join
table2.value2 t2
on t1.sku = t2.item
SET t1.quantity = (case when @uids := concat_ws(',', fooid, @uids)
then t2.qty
else t2.qty
end);
SELECT @uids;
编辑:
如果数量相同,您将看不到更新。只需修正join
:
SET @uids := '';
UPDATE table1.value1 t1 join
table2.value2 t2
on t1.sku = t2.item and t1.quantity <> t2.qty
SET t1.quantity = (case when @uids := concat_ws(',', fooid, @uids)
then t2.qty
else t2.qty
end);
SELECT @uids;