假设我有一个这样的数据库(MyISAM):

+------------+-------------------+------------------+
| student_id | student_firstname | student_lastname |
+------------+-------------------+------------------+
|         30 | Patrik            | Andersson        |
|         79 | Patrik            | Svensson         |
+------------+-------------------+------------------+

我执行这个查询:
SELECT s.student_firstname, s.student_lastname FROM students s
WHERE MATCH (student_firstname, student_lastname)
 AGAINST
('+Patrik Svensson*' IN BOOLEAN mode)

这将生成上述两行。为什么我的结果中没有一行?是因为student_lastname中的最后三个字母相同吗?有什么方法可以使FULLTEXT更精确吗?

最佳答案

我已经测试过了,这个查询给出了正确的结果

SELECT s.student_firstname, s.student_lastname FROM students s
WHERE MATCH (student_firstname, student_lastname)
 AGAINST
('+Patrik +Svensson*' IN BOOLEAN mode)

关于mysql - MySQL全文搜索显示我不正确的结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11561093/

10-12 17:38