[英]Update data in an existing row taken from another row in the same table
我正在嘗試根據各種指南和其他 stackoverflow 問題中的發現構建此查詢:
UPDATE `characters`
SET `level`, `xp`, `taximask` = (SELECT `level`, `xp`, `taximask`
FROM `characters`
WHERE `guid` = 111) WHERE `name` = 'targetname';
在此示例中,我想將級別、xp 和taxmask 列的內容從guid 匹配111 的行復制到name 匹配targetname 的行。 兩者都在同一個數據庫/表中。
由於 3 列只是我需要復制 25 列以上的查詢的占位符,因此我正在尋找一種方法來使查詢工作並可能縮短它。
這是我從朋友那里得到的工作解決方案:
UPDATE `characters` AS t1
INNER JOIN `characters` AS t2 ON t2.guid = 111
SET t1.level = t2.level, t1.xp = t2.xp, t1.taximask = t2.taximask
WHERE t1.`name` = 'targetname';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.