gpt4 book ai didi

php - 在 PHP 中使用 LIKE 的 SQL 搜索查询

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

问题:

我正在尝试在我的 SQL 搜索查询中使用全文索引,但由于某种原因它没有从数据库返回任何帖子。

PHP/SQL 代码:

$string = mysql_real_escape_string($_POST['searchtext']);

$query = "SELECT
EID,
CONCAT (u1.Firstname, ' ', u1.Lastname) AS Examiner,
Supervisor,
ExaminationDate,
FirstAuthor,
SecondAuthor,
Level,
Credits,
Completed
FROM betyg_essays grade
INNER JOIN betyg_users u1 ON grade.Examiner = u1.UID
WHERE
MATCH (Supervisor, FirstAuthor, SecondAuthor) AGAINST ('$string')
ORDER BY
EID ASC
";

MySQL 表定义:

enter image description here

数据库中包含两个帖子的列:

enter image description here

场景:

如果我只搜索“per”,它应该返回第二个帖子。

最佳答案

假设您的全文索引定义是正确的(您应该发布您的表定义),MySQL 在标准安装中只会索引至少 4 个字母的单词。您必须通过设置 ft_min_word_lenmy.cnf 中更改它如果您想在搜索中支持 3 个字母的单词:

[mysqld]
ft_min_word_len=3

此外,您应该按照 MySQL documentation 中的描述检查阈值和停用词列表。 .

编辑:

根据您的table definition您使用的 InnoDB 表在 MySQL 5.6.4 之前不支持全文索引。那是满额吗?而且我看不到您定义中定义的任何全文索引。

应该是这样的:

... FULLTEXT KEY `keywords` (`keywords`) ...

要向表中添加全文索引,请使用 ALTER TABLE 语法:

ALTER TABLE betyg_essays ADD FULLTEXT(FIELD1, FIELD2, ...);

关于php - 在 PHP 中使用 LIKE 的 SQL 搜索查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11135566/

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