因此,我在数据库中有 4 个表(文章)。有,ID(自动递增),标题,描述和内容。
这是我用来执行 PDO 全文搜索的 SQL 查询:
$sql = $database->prepare("SELECT *,
MATCH(title, content) AGAINST('*$query*' IN BOOLEAN MODE) as score
FROM articles
WHERE MATCH(title, content) AGAINST('*$query*' IN BOOLEAN MODE)
ORDER BY score DESC");
$sql->execute();
当我回应它时一切正常。
但是,当我在其中包含“描述”时,它不起作用。
$sql = $database->prepare("SELECT *,
MATCH(title, content, description) AGAINST('*$query*' IN BOOLEAN MODE) as score
FROM articles
WHERE MATCH(title, content, description) AGAINST('*$query*' IN BOOLEAN MODE)
ORDER BY score DESC");
$sql->execute();
它没有给我任何错误信息。但是,当我回显时没有结果。
我正在使用 WAMP 服务器。
最佳答案
可能当您创建表时,描述字段不在那里,然后不在 MYSQL 的 FULLTEXT 键中。你可以看这里Show a tables FULLTEXT indexed columns查看它是否缺少描述栏。
如果是,您需要删除/删除 FULLTEXT 搜索列并添加一个新的
ALTER TABLE articles ADD FULLTEXT(title, content, description)
关于php - 全文搜索不适用于某些表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26986635/