mysql-在一个字段中查找一大串关键字的上下文

a11xaf1n  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我对这个感到不安。
我的数据库中有一个字段,包含如下数据:

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%')')

在这里它看起来就像它只是在第一段搜索
它似乎不起作用:(
你能帮忙吗?

ezykj2lf

ezykj2lf1#

只需几个关键字,就可以使用 NOT REGEXP / NOT RLIKE ```
AND FIELD NOT RLIKE '[0-9]+[ -]?(keyword1|keyword2|keyword3)'

您还可以创建一个包含关键字的表。然后使用 `NOT EXISTS` 带着一个 `RLIKE` ```
AND NOT EXISTS
(
   SELECT 1
   FROM wordstoavoid w
   WHERE t.FIELD RLIKE CONCAT('[0-9]+[ -]?', w.word)
);

可以在这里找到测试

相关问题