mysql - Mysql MATCH,首先按“找到完整世界”排序
问题描述
我有这个数据:
id |lastname | firstname
--------------------|----------
1 | sevenier | anna
2 | Sévenier | Julie
3 | SEVES | Laurie
4 | seve | gwen
5 | SÈVE | clémentine
6 | Sève | Antoine
7 | Posève | Thomas
我想要的是 :
用户将搜索seve
,结果应返回(注意顺序):
id |lastname | firstname
--------------------|----------
4 | seve | gwen
6 | Sève | Antoine
5 | SÈVE | clémentine
3 | SEVES | Laurie
1 | sevenier | anna
2 | Sévenier | Julie
7 | Posève | Thomas
我想先得到完整的关键字,然后是 wilcard 的另一个结果start with
,然后是 wildcard full
。
我尝试使用 FULLTEXT 和 MATCH :
SELECT
MATCH(lastname) AGAINST ('*seve*' IN BOOLEAN MODE) AS relevance,
customer.*
FROM `customer`
WHERE MATCH(lastname) AGAINST ('*seve*' IN BOOLEAN MODE)
ORDER BY relevance DESC
我认为relevancy
应该更“相关”,但它是一样的,它是否匹配完整的关键字或通配符结果并不重要。
可以用 MySQL 完成吗?我需要一些 PHP 治疗吗?我现在正在探索这种方式,但我想确保不会错过任何东西。
解决方案
推荐阅读
- json - 解析json postgresql查询
- nuget - 在构建后事件中获取 dotnet pack 执行的全名路径和 nuget 推送
- python - 在 python 中使用 argparser 进行多重分组
- python - apache-beam 不支持将 BigQuery 表架构作为列表
- c# - 为什么在应用程序退出时出现 csrss.exe 错误?
- python - Python/Linear time string concatenation中的str.join(iterable)方法是如何实现的
- mysql - 您好,我有一个 MYSQL 表,我想在其中防止 3 列中的相同数据,它类似于:
- python - 如何在派生类中使用 super().__add__
- r - 如何在 R 中导入混乱的文本文件
- javascript - 如何在 NodeJS 中查找流的长度?