0

有没有一种方法可以使用全文搜索来运行 Mysql 查询,例如搜索列(hayes)并在匹配后用“hayes”替换字符串的其余部分?:

Column1:伦敦,海斯,MD15 736

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

第 1 列:海斯

因此,由于第 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<<< 它只会匹配 hayes 而不是 london 和 hayes。

4

1 回答 1

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)))
于 2013-03-04T12:37:37.347 回答