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

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

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

  1. Dummydata Dummydata
  2. Dummydata Dummydata 15
  3. Dummydata 124578 KEYWORD

在最后一行也可以这样:

  1. Dummydata 124578KEYWORD

  1. Dummydata 124578-KEYWORD


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

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

在这里,它只是重新运行一切,好像它被忽略了

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

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

ezykj2lf

ezykj2lf1#

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

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

可以在这里找到测试

相关问题