跨多个字段的文本搜索MySQL

时间:2011-04-13 20:01:08

标签: mysql

我有一个像这样的MySQL表:

ID | Artist | Title

其中包含从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]%'

我很感激任何意见/方向。

由于

1 个答案:

答案 0 :(得分:10)

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

ALTER TABLE sound_tracklist ADD FULLTEXT INDEX (artist, title);

然后你可以做

SELECT artist, title FROM sound_tracklist WHERE MATCH (artist, title) AGAINST ('bach brandenburg concerto')

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