使用全文搜索Mysql搜索和替换列

时间:2013-03-04 11:48:55

标签: mysql full-text-search

有没有办法使用全文搜索运行Mysql查询,例如搜索列(hayes)并用" hayes"替换字符串的其余部分。一旦匹配?:

column1的: 伦敦,海斯,MD15 736

WHERE MATCH (COLUMN1) AGAINST ('hayes' IN BOOLEAN MODE)

column1的: 海斯

所以,因为第1列已匹配" hayes"它删除了其余的字符串。它需要通过全文来完成,例如在大型数据集上花费太长时间。

并且关键字可能没有设置顺序,因此我无法使用find_in_set

此外,我将使用大量关键字运行此功能,如下所示:

WHERE MATCH (COLUMN1) AGAINST ('hayes' IN BOOLEAN MODE)
OR MATCH (COLUMN1) AGAINST ('+WEST +BROMWICH' IN BOOLEAN MODE)
OR MATCH (COLUMN1) AGAINST ('London' IN BOOLEAN MODE)

因此,如果我在包含以下字符串的column1上运行上述查询:

london, m456, hayes<<<它只会与海耶斯匹敌,而不是伦敦和海耶斯。

1 个答案:

答案 0 :(得分:0)

您可以尝试查找包含两个单词中至少一个的行。

     AGAINST ('+hayes +London' IN BOOLEAN MODE) 

如果要查找包含两个单词的行,请使用此

    AGAINST ('+hayes London' IN BOOLEAN MODE) 

编辑:

UPDATE table
SET COLUMN1 =
        'HAYES'
 WHERE
  COLUMN1
 LIKE
    '%hayes%';

如果您有更多关键字使用

   UPDATE table
   SET COLUMN1 =if(
    COLUMN1 LIKE '%hayes%', 'HAYAS', if( 
    COLUMN1 LIKE '%derby%' ,'DERBY' , if(
    COLUMN1 LIKE '%wawwaw%' ,'WAWAWA', Column1)))