首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在任意表中选择出现文本的行?

在任意表中选择出现文本的行?
EN

Stack Overflow用户
提问于 2014-06-27 10:40:18
回答 1查看 12关注 0票数 0

我正在使用PHP和MySQL。我有两张表:

表1-3列: ad_id、标题、内容表2-2列: ad_id、位置

现在,我如何执行搜索,例如搜索"accountants in paris“,这样只有当"accountants”、" in“和"paris”位于任何列中的某个位置时,它才会返回行。例如,如果表包含:

表1:

代码语言:javascript
复制
ad_id=1
title="blah"
content="accountants"

表2:

代码语言:javascript
复制
ad_id=1
location="in paris"

我要去划一排

代码语言:javascript
复制
ad_id title location
1     blah  in paris

因为“巴黎的会计师”在这个特定ad_id的任何列中。在以下情况下也会得到相同的结果:

表1:

代码语言:javascript
复制
ad_id=1
title="in"
content="paris"

表2:

代码语言:javascript
复制
ad_id=1
location="accountants"

但是,如果表是:

表1:

代码语言:javascript
复制
ad_id=1
title="blah"
content="accountants"

表2:

代码语言:javascript
复制
ad_id=1
location="paris"

我不应该返回任何行,因为缺少"paris“。对于mySQL来说,这是可能的吗?或者我必须运行3个独立的查询并以某种方式在php中跟踪结果?

顺便说一句,如果我的解释令人困惑,我很抱歉,我发现由于某些原因很难解释。

EN

回答 1

Stack Overflow用户

发布于 2014-06-27 10:44:43

您正在寻找的功能是全文搜索。MySQL中的documentation在这个问题上做得相当透彻。

您可以在多个列上创建全文索引,这似乎就是您正在寻找的功能。此外,它(通常)比单独搜索每个术语要快得多。

关于您的特定搜索,有一个警告。单词'in'是一个停用词,因此默认情况下它将被忽略。此外,默认情况下会忽略少于4个字符的单词。这两个索引都可以修改,但如果您尝试构建这样的索引,这将是一个警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24443135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档