在 SQL 中实现关键字黑名单
我有一个关键字(字符串)列表,其中我需要识别与关键字黑名单(单独表中的字符串)的任何匹配,
任何关键字/黑名单匹配都将在位字段中进行标记:Keyword.IsBlacklisted。
有没有一种简单的方法可以在 SQL 中实现这一点?
匹配可能是部分的(即黑名单 = 'sex' 关键字 = '性玩具')
解决方案 - 感谢 Daniel Spiewak
SELECT Keyword.Keyword FROM Keyword CROSS JOIN BlackList
WHERE (Keyword.Keyword
LIKE { fn CONCAT({ fn CONCAT('%', BlackList.Keyword) }, '%') })
I have a list of keywords (strings) in which I need to identify any matches with a blacklist of keywords (strings in a separate table)
Any keyword/blacklist matches will be flagged in a bit field: Keyword.IsBlacklisted.
Is there an easy way to accomplish this in SQL?
The matches might be partial (i.e. blacklist = 'sex' keyword = 'sex toy')
SOLUTION - Thanks Daniel Spiewak
SELECT Keyword.Keyword FROM Keyword CROSS JOIN BlackList
WHERE (Keyword.Keyword
LIKE { fn CONCAT({ fn CONCAT('%', BlackList.Keyword) }, '%') })
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
假设这些单词位于
words
表的keyword
字段中,并且blacklist
在word
中包含其单词场地。 这将毫无效率,但我认为从理论的角度来看这是你能做的最好的事情。Assuming that the words are in the
keyword
field of thewords
table and theblacklist
contains its words in theword
field. This will be anything but efficient, but I think it's the best you can do from a theoretical standpoint.