有没有办法使用全文搜索运行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
<<<它只会与海耶斯匹敌,而不是伦敦和海耶斯。
答案 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)))