MYSQL:有没有办法根据另一个表中的值(在单个查询中)替换列值的几个部分?

时间:2016-03-31 22:29:48

标签: mysql

这是事情: 我有一个专栏:

table1
ID  Name  Playlist
1   Hi     Category1|Category2|Category3
2   Ho     Category2|Category4|Category6
etc...

然后是另一张桌子:

table2
ID Name
1 Category1
2 Category2
3 Category3
....

在表1中,值字符串实际上是“Category1 | Category2 | Category3”。 我希望单个查询将table1的播放列表列中的所有字符串替换为table2中各自的ID,以便在查询之后,table1应如下所示:

table1
ID  Name  Playlist
1   Hi     1|2|3
2   Ho     2|4|6
etc...

我可以通过编写一个循环或类似的东西来做到这一点,但是我想在单个查询中使用它,但是,我不知道如何用不同的值替换列的值的一部分。< / p>

如果只是:

table1
    ID  Name  Playlist
    1   Hi     Category1
    2   Ho     Category2
    etc...

然后我会使用如下的查询:

UPDATE table1 a, table b SET a.playlist = b.Name WHERE a.`Playlists` = b.`Name`;

虽然我真的想要这个请求的查询,但我仍然希望听到有关更好方法的建议。

提前致谢。

编辑: 播放列表中的类别数量未知。它也可以是空的。

0 个答案:

没有答案