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

问题描述 投票:1回答:1

我对这个感到绝望。

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

这看起来只是在第一段搜索

它似乎没有工作:(

你能帮我吗?

mysql regex mariadb sql-like keyword
1个回答
0
投票

只需几个关键字,您就可以使用NOT REGEXP / NOT RLIKE

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

您还可以使用关键字创建表格。然后使用带有NOT EXISTSRLIKE

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

测试可以找到here

© www.soinside.com 2019 - 2024. All rights reserved.