所以这是我的表结构,如果有帮助的话:

mysql - MySQL从另一个表更新值-LMLPHP

 UPDATE songs
-> SET artist_id =
-> (SELECT artist_id FROM artists WHERE artists.name = songs.artist);
Query OK, 0 rows affected (0.00 sec)
Rows matched: 27  Changed: 0  Warnings: 0


我的代码保持匹配的行,但永远不会改变实际表中的任何内容

有什么想法为什么不起作用?

最佳答案

此代码基本上看起来正确。我将其写为:

UPDATE songs s
    SET artist_id = (SELECT a.artist_id
                     FROM artists a
                     WHERE a.name = s.artist
                    );


如果此查询返回错误,则artist_id不在artists中。您可能需要a.id

如果该查询没有更新任何内容,则artist_id已经具有相同的值。

关于mysql - MySQL从另一个表更新值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58759449/

10-12 00:47