在mysql中使用match和group_concat

时间:2016-06-14 18:45:46

标签: mysql full-text-search

我'尝试编写一个MYSQL查询,在查询字段聚合中查找字符串。

以下查询查找" io sono"的所有连接。在场:

SELECT chapter, GROUP_CONCAT(text_search) AS aggregated_chapters
FROM bible_it_cei_2008
GROUP BY chapter
HAVING aggregated_chapters LIKE '%io sono%';

但是,尝试使用MATCH ... AGAINST而不是LIKE:

SELECT chapter, GROUP_CONCAT(text_search) AS aggregated_chapters
FROM bible_it_cei_2008
GROUP BY chapter
HAVING MATCH ( aggregated_chapters ) AGAINST ( '+"io sono"' IN BOOLEAN MODE);

返回错误:

#1210 - Incorrect arguments to MATCH

有没有办法在GROUP_CONCAT中使用MATCH AGAINST?

1 个答案:

答案 0 :(得分:0)

  

有没有办法在GROUP_CONCAT中使用MATCH AGAINST?

没有。这不是FULLTEXT search works in MySQL的方式。

如果您的表格包含chaptertext_search列,并且您希望找到chapter匹配文字搜索的值,那么您需要这样的内容。

SELECT chapter, 
       MATCH(text_search) AGAINST ('+"io sono"' IN NATURAL LANGUAGE MODE) AS score 
  FROM bible_it_cei_2008

要实现此功能,您需要创建appropriate FULLTEXT index