更新多列不同行相同 Table

Update multiple Cols Different Row Same Table

这个有效:

UPDATE tracks 
SET (artist, lyrics) = 
('Last, First', 'none yet') 
WHERE id = 127;

这有效:

UPDATE tracks 
SET lyrics =                      
(SELECT lyrics FROM tracks WHERE id = 64)
WHERE id = 127;   

这个 return 出错(lyrics) = 附近)

UPDATE tracks 
SET (artist, lyrics) =    
    (SELECT artist, lyrics 
    FROM tracks
    WHERE id = 64)
WHERE id = 127;

如何return 子查询采用外部查询可以使用的格式?

UPDATE tracks 
SET (artist, lyrics) =    
    (SELECT artist, lyrics 
    FROM [Put your table name here]
    WHERE id = 64)
WHERE id = 127;

您忘记将 table 放入查询中:

UPDATE tracks 
SET (artist, lyrics) =    
    (SELECT 
           artist, 
           lyrics 
     FROM #your_tablename_here
     WHERE id = 64)
WHERE id = 127;

编辑: 尝试分开您的更新字段。见下文:

UPDATE tracks 
    SET artist = (SELECT artist FROM tracks WHERE id = 64),
        lyrics = (SELECT lyrics FROM tracks WHERE id = 64)
WHERE id = 127;

我是这样做的:

UPDATE tracks 
JOIN (/* Derived table */
SELECT tx.artist, tx.lyrics
    FROM tracks tx
    WHERE id = 64
 ) dt
SET tracks.artist=dt.artist, tracks.lyrics =  dt.lyrics 
WHERE id = 127;