跨多个字段的文本搜索MySQL

Dav*_*ave 2 mysql

我有一个像这样的MySQL表格:

ID | Artist | Title
Run Code Online (Sandbox Code Playgroud)

其中包含从MP3 ID3标签获取的歌曲信息.

现在,我希望能够对此进行搜索,但是传入的数据可能有多种格式.我相信你们都知道在几个人拿到它们之后ID3标签会如何结束.

我有以下查询,我已经尝试过,但现在看一下,我完全理解为什么它不会带回结果集.我是新鲜的想法.

SELECT CONCAT(artist, ' ',title) as trackname 
FROM sound_tracklist 
WHERE CONCAT(artist,' ',title) LIKE '%[JunkTags]Artist - Title[More Junk - www.junkwebsite.com]%'
Run Code Online (Sandbox Code Playgroud)

我很感激任何输入/方向.

谢谢

Mar*_*c B 10

如果您在MyISAM类型表中,请尝试使用FULLTEXT索引:

ALTER TABLE sound_tracklist ADD FULLTEXT INDEX (artist, title);
Run Code Online (Sandbox Code Playgroud)

那么你可以做到

SELECT artist, title FROM sound_tracklist WHERE MATCH (artist, title) AGAINST ('bach brandenburg concerto')
Run Code Online (Sandbox Code Playgroud)

它不会捕获拼写错误("konshertoe",任何人?),但它会在索引中的所有字段中搜索您指定的键盘,并以任何顺序捕获它们.

  • "键盘"?Sheesh ......我真的需要睡多了. (2认同)