gpt4 book ai didi

php - 选择在任何表中出现文本的行?

转载 作者:行者123 更新时间:2023-11-30 00:07:06 25 4
gpt4 key购买 nike

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

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

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

表 1:

ad_id=1
title="blah"
content="accountants"

表 2:

ad_id=1
location="in paris"

我会得到一行

ad_id title location
1 blah in paris

因为“accountants in paris”位于此特定 ad_id 的任意列中。如果出现以下情况,结果会相同:

表 1:

ad_id=1
title="in"
content="paris"

表 2:

ad_id=1
location="accountants"

但是如果表是:

表 1:

ad_id=1
title="blah"
content="accountants"

表 2:

ad_id=1
location="paris"

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

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

最佳答案

您正在寻找的功能是全文搜索。 documentation MySQL 中关于这个主题的内容相当详尽。

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

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

关于php - 选择在任何表中出现文本的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com