0

例如,我正在使用以下代码:

SELECT *, (MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) AS score FROM `example_table` WHERE MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) order by score DESC;

然而,即使wm列中存在精确匹配,精确匹配直到第 8 个结果才会出现。前面的也都有这句话,还有一些后面的文字。我检查了locn,gns字段,看看它们是如何比较的,没有什么特别突出的东西可以让其他人得分更高。

我做了一些关于使用的阅读,BOOLEAN MODE但我在那里读到的任何内容似乎都没有帮助我的需求。

4

1 回答 1

1

好的,如果这对其他人有帮助,我可以通过这样做来实现我想要的:

SELECT *, 
  CASE WHEN wm = 'foot locker' THEN 1 ELSE 0 END AS score, 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker') AS score2 
FROM 
  `example_table` 
WHERE 
  MATCH (`wm`, `locn`, `gns`) AGAINST('foot locker')) 
ORDER BY
  score DESC, score2 DESC;
于 2011-08-28T20:39:51.860 回答