Реализация черного списка ключевых слов в SQL
У меня есть список ключевых слов (строк), в котором мне нужно определить любые совпадения с черным списком ключевых слов (строки в отдельной таблице)
Любые совпадения ключевых слов и черного списка будут помечены в битовом поле: Keyword.IsBlacklisted.
Есть ли простой способ сделать это в SQL?
Совпадения могут быть частичными (т. Е. Черный список = ключевое слово "секс" = "игрушка секса")
РЕШЕНИЕ - Спасибо Даниэль Спивак
SELECT Keyword.Keyword FROM Keyword CROSS JOIN BlackList
WHERE (Keyword.Keyword
LIKE { fn CONCAT({ fn CONCAT('%', BlackList.Keyword) }, '%') })
1 ответ
Решение
SELECT keyword FROM words JOIN blacklist
WHERE keyword LIKE CONCAT(CONCAT('%', word), '%')
Предполагая, что слова в keyword
поле words
стол и blacklist
содержит свои слова в word
поле. Это будет совсем не эффективно, но я думаю, что это лучшее, что вы можете сделать с теоретической точки зрения.