gpt4 book ai didi

php - sql 获取所有行,其中 x 包含字符串中的每个单词

转载 作者:行者123 更新时间:2023-11-29 01:35:07 24 4
gpt4 key购买 nike

这是我当前代码的粗略示例。为了简单起见,我没有包括参数化查询:

if(isset($_GET["q"])) {
$query = "%" . trim($_GET["q"]) . "%";
$search = $pdo->query("
SELECT *
FROM test
WHERE title LIKE {$query} AND keywords LIKE {$query}
");
var_dump($search);
}

表:测试:

| title             | keywords       |
| this, is a "test" | this is a test |

我一直在尝试通过使用基本的 SQL 在我的网站中创建一个简单的搜索系统。大多数时候我都取得了积极的结果 - 但是我遇到了一个问题,经过几天的研究我似乎无法解决。

如果我输入类似“this is a test” 的查询作为查询,我会得到包含相关结果的返回行。但是当我查询 "test this is a" 时,它返回no results

如果查询有_any__ 拼写错误,它也不起作用。 (我一直在搜索 levenshtein,但在 MySQL 中没有答案)。

感谢所有帮助,干杯。

最佳答案

首先,您需要为 FULLTEXTalter

ALTER TABLE test ADD FULLTEXT(title);
ALTER TABLE test ADD FULLTEXT(keywords);

然后使用 MATCH 执行此查询

SELECT * FROM test WHERE MATCH(title) AGAINST ('test this is a' IN NATURAL LANGUAGE MODE)
OR MATCH(keywords) AGAINST('test this is a' IN NATURAL LANGUAGE MODE);

附上结果截图

enter image description here

关于php - sql 获取所有行,其中 x 包含字符串中的每个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52854752/

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