更新多列不同行相同 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;
这个有效:
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;