Реализация черного списка ключевых слов в SQL - PullRequest
1 голос
/ 19 марта 2009

У меня есть список ключевых слов (строк), в котором мне нужно идентифицировать любые совпадения с помощью черного списка ключевых слов (строки в отдельной таблице)

Любые совпадения ключевых слов / черного списка будут помечены в битовом поле: Keyword.IsBlacklisted.

Есть ли простой способ сделать это в SQL?

Совпадения могут быть частичными (т. Е. Черный список = ключевое слово "секс" = "секс-игрушка")

РЕШЕНИЕ - Спасибо, Даниэль Спивак

 SELECT Keyword.Keyword FROM Keyword CROSS JOIN BlackList
 WHERE (Keyword.Keyword 
 LIKE { fn CONCAT({ fn CONCAT('%', BlackList.Keyword) }, '%') })

1 Ответ

2 голосов
/ 19 марта 2009
SELECT keyword FROM words JOIN blacklist 
               WHERE keyword LIKE CONCAT(CONCAT('%', word), '%')

Предполагая, что слова находятся в поле keyword таблицы words, а blacklist содержит свои слова в поле word. Это будет далеко не эффективно, но я думаю, что это лучшее, что вы можете сделать с теоретической точки зрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...