【发布时间】:2014-12-21 08:33:14
【问题描述】:
我找不到与我所问的问题足够接近的问题,所以这是我的问题:
我有一个存储在 MySQL 表中的黑名单单词列表。然后我有一句话。我需要构建一个 MySQL 查询,在其中搜索句子中任何被列入黑名单的单词的出现。
如果只有一个匹配,搜索可能会停止,因为该句子不可接受。
谁能帮我构建这个查询?谢谢!
编辑
如果可能的话,我想避免在 PHP 和 MySQL 之间跳槽。我可以有两千个或更多列入黑名单的单词。我想将我的文件作为字符串/变量提交到 MySql 中,而不是从中构建表。
我得到的最接近的一行 SQL 是:
SELECT keyword, STRCMP('this is my sentence with blacklisted word', keyword) FROM blacklist;
也许,我的线路朝着好的方向发展,如果找到匹配项,可以改进为简单地返回 TRUE 或 FALSE?
【问题讨论】:
-
你的句子在哪里?
-
@MyDog:嗨,这句话作为参数传递到查询中。句子正在改变,它是从 PHP 脚本传递的。我需要检查它是否包含任何列入黑名单的单词。
-
OP,我第一次看错了这个问题。我现在看到您可能有多个列入黑名单的单词,所以我稍微更新了我的答案。这没有用我不熟悉的 PHP 标记,但请查看我编辑的答案,该答案显示了假设您的句子存储在表格中而不是作为参考传递的情况下如何做到这一点。它可能仍然有帮助。
-
@McAdam331:您好,感谢您的更新。是的,你在一个很好的方式。由于速度的原因,我想避免在 PHP 和 MySQL 之间跳转。我想构建一个查询并获得结果。我需要一段时间来消化你的例子,但我知道,我想将一个字符串作为变量提交到查询中。
-
好的,希望你能解决。我建议将 php 标签添加到您的问题中,并编辑问题以说明您正在使用 PHP。它可以帮助像我这样的人,他们的答案对于 MySQL 来说是正确的(因为它被标记了),但并没有真正回答你的问题。