mySQL - 在一个字段中查找大量关键字的上下文
mySQL - Find Context of a big List of Keywords in one field
我对这个很失望。
我的 Maria MySql 数据库中有一个字段包含如下数据:
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)'
您还可以使用关键字创建 table。然后使用 NOT EXISTS
和 RLIKE
AND NOT EXISTS
(
SELECT 1
FROM wordstoavoid w
WHERE t.FIELD RLIKE CONCAT('[0-9]+[ -]?', w.word)
);
可以找到一个测试here
我对这个很失望。
我的 Maria MySql 数据库中有一个字段包含如下数据:
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)'
您还可以使用关键字创建 table。然后使用 NOT EXISTS
和 RLIKE
AND NOT EXISTS
(
SELECT 1
FROM wordstoavoid w
WHERE t.FIELD RLIKE CONCAT('[0-9]+[ -]?', w.word)
);
可以找到一个测试here