MySQL如何LIKE匹配参数+通配符?

标签 mysql wildcard sql-like

我有一个旧歌曲数据库,我想将其转移到新数据库。 我的旧数据库看起来像这样,多个值被填充在一个用逗号分隔的字段中

SONG
id    |    title    |    artist    |    lyricist
1           abc     |     John     |    John, Mary

在新表中,我将它们分开并通过 id 连接。我已经将所有艺术家姓名复制到新的“艺术家”表中。

ARTIST
ID    |    NAME
1     |    John
2     |    Mary

我现在正在尝试将歌词作者列复制到新的“song_lyricist”表中,

SONG lYRICIST
SONG_ID    |    ARTIST_ID
1               1
1          |    2

这是我的 sql 选择查询

SELECT song.id, song.lyricist, artist.id
FROM song
JOIN artist
ON
song.lyricist LIKE artist.name

该查询适用于选择具有单个值的字段,但不适用于带有逗号的多个值的字段。我尝试将其与通配符“song.lyricist LIKE Artist.name + '%'”结合使用,但它给了我一个语法错误。

最佳答案

选择歌曲.id、歌曲.作词者、艺术家.id 从歌曲 加入艺术家 在 歌曲.作词者 LIKE '%',

您可以使用此方法或 Go for Store Procure 来实现这种方法 引用这个链接—— https://www.mssqltips.com/sqlservertutorial/161/creating-a-simple-stored-procedure/

关于MySQL如何LIKE匹配参数+通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42310797/

相关文章:

php - mysql不会插入5到10个用户同时提交的同一个php表单的所有数据

mysql - 如何计算每个不同组内的行数?

MySQL - 检索具有最大值的记录

VBA 使用通配符打开文件,只知道扩展名

java - Hibernate 查询之类的问题

不等于的 mySQL LIKE 运算符

MySQL - Geo - 获取最近的教区给定坐标

bash - Shell 是可变数字

search - 如何在 Lucene 中执行通配符搜索

mysql - 如何在 MySQL 中使用 select result with like