【问题标题】:How to select all posts from a table where content doesn't contain the stop words existing in a secondary table如何从内容不包含辅助表中存在的停用词的表中选择所有帖子
【发布时间】:2015-09-24 19:40:55
【问题描述】:

我有表 posts 和字段 id、message_original 和表 spamfilters 和字段 id、spamterm。

我想从表 posts 中选择所有记录,其中 message_original 不包含位于表 spamfilters 中的列 spamterm 中的停用词。每个垃圾邮件词都在一行中。

如何在 MySQL 查询中进行管理?

【问题讨论】:

  • SELECT posts.* FROM posts WHERE posts.message_original not in (SELECT spamfilters.spamterm FROM spamfilters)
  • 用这个,有用吗?
  • 嗯..不能给出我期望的结果..首先..你在垃圾邮件中寻找message_original内容..但内容是这样的:message_original = "I做了一些我不引以为豪的测试”..你在垃圾邮件中使用了“测试”这个词..显然我更希望不得不将 message_original 拆分成单词,然后以某种方式进行比较
  • 所以你必须使用not like *'spamfilters.spamterm'*
  • 在句子中寻找福特

标签: mysql stop-words


【解决方案1】:

我已经设法做到了,而且它很有效。虽然我不能说这是一个多么好的解决方案.. 但它确实有效。

SELECT posts.* FROM posts JOIN spamfilters WHERE posts.message_original like CONCAT('%', spamterm,'%')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多