在MySQL查询中使用Like和Concat

| 我正在将文本文件加载到数据库中,并尝试在列出组织名称的表与保存文本文件和与这些组织的潜在匹配的表之间进行快速匹配。 我使用
LOAD INFILE CONCURRENT
加载了文件,并且没有任何问题。 之所以出现这种扭曲,是因为我要在原始文本表(
occupationoraffiliation
)中匹配的字段中不仅包含组织名称。因此,我尝试使用带有通配符的ѭ2来匹配字符串。 为了匹配文本,我尝试使用以下查询:
UPDATE raw_faca JOIN orgs AS o
    ON raw_faca.org_id IS NULL AND raw_faca.occupationoraffiliation LIKE CONCAT(\'%\',o.org_name,\'%\')
SET raw_faca.org_id = o.org_id;
我也尝试过不加
CONCAT
UPDATE raw_faca JOIN orgs AS o
    ON raw_faca.org_id IS NULL AND raw_faca.occupationoraffiliation LIKE (\'%\' + o.org_name + \'%\')
SET raw_faca.org_id = o.org_id;
raw_faca
表具有〜40,000行,and7ѭ表具有〜20,000行。我对所有索引都有查询。查询已经运行了几个小时左右-对于该操作来说,这似乎太长了。我是在尝试比较低效的运行还是在这里做一些非常愚蠢的事情?我希望避免与外部php或python脚本逐行进行。 为了回应以下有关使用
Match . . . Against
的评论,我也尝试了以下查询:
UPDATE raw_faca JOIN orgs AS o ON raw_faca.org_id IS NULL AND MATCH(raw_faca.occupationoraffiliation) AGAINST (o.org_name IN NATURAL LANGUAGE MODE)
SET raw_faca.org_id = o.org_id; 
这给了我这个错误:
incorrect arguments to AGAINST
有什么想法吗?     
已邀请:
带前导通配符的
LIKE
子句将无法利用任何索引。     

要回复问题请先登录注册