簡體   English   中英

更新從同一個表中的另一行獲取的現有行中的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM