mySQL - 在一个字段中查找大型关键字列表的上下文



我对这个感到失望。

我的Maria MySql DB中有一个字段,其中包含如下数据:

Dummydata Dummydata
Dummydata Dummydata 15
Dummydata 124578 KEYWORD

它在模具最后一行中也可以看起来像这样:

Dummydata 124578KEYWORD

Dummydata 124578-KEYWORD

现在我有一个大约 3000 个关键字的列表,需要在我的结果中排除这些关键字,这基本上是我唯一的标准。

我试过这样的

AND NOT (FIELD LIKE '%KEYWORD1%' OR FIELD  LIKE '%KEYWORD2%')

在这里,它只是重新调整所有内容,就像它被忽略了

一样和

AND NOT (FIELD IN ('%KEYWORD1%','%KEYWORD2%')')

在这里,它看起来像只是在第一段中搜索

它似乎不起作用:(

你能帮忙吗?

对于只有几个关键字,您可以使用NOT REGEXP/NOT RLIKE

AND FIELD NOT RLIKE '[0-9]+[ -]?(keyword1|keyword2|keyword3)'

您还可以创建包含关键字的表格。然后使用带有RLIKENOT EXISTS

AND NOT EXISTS
(
SELECT 1
FROM wordstoavoid w
WHERE t.FIELD RLIKE CONCAT('[0-9]+[ -]?', w.word)
);

可以在此处找到测试

最新更新