mysql - 如何在 MySQL 中使用 FULLTEXT 查询来返回与字符串匹配的所有结果?
问题描述
我目前有这个查询:
SELECT *, COUNT(history.v_id) AS videoCheck, MATCH (v_title, v_desc, v_tags) AGAINST ("%not%") AS relevance FROM videos LEFT JOIN history ON history.v_id = videos.v_id WHERE MATCH (v_title, v_desc, v_tags) AGAINST ("%not%") GROUP BY relevance DESC
我希望该查询返回包含字符串not
的所有结果,但它只返回 1 个结果而不是 2 个。
让它返回所有匹配查询而不是只返回 1 的最佳方法是什么?
编辑1:
如果我使用WITH QUERY EXPANSION
修饰符,它确实返回 2 个结果,但这仍然不是我想要的,因为如果字符串更改为例如asd
,它也只返回 2 个结果,而不是存储的更多结果。
编辑2:
查询LIKE
:
SELECT *, COUNT(history.v_id) AS videoCheck FROM videos LEFT JOIN history ON history.v_id = videos.v_id WHERE CONCAT_WS(v_tags, v_title, v_desc) LIKE :input GROUP BY history.v_id ORDER BY videoCheck DESC
解决方案
这个查询似乎正在做我想要的:
SELECT *, MATCH (v_title, v_desc, v_tags) AGAINST (:input) AS relevance FROM videos WHERE MATCH (v_title, v_desc, v_tags) AGAINST (:inputWhere) ORDER BY relevance DESC
我不再需要了LEFT JOIN
,因为我不再订购了videoCheck
。
推荐阅读
- erlang - 是什么 | 和 || 在 Erlang 中是什么意思?
- function - 从不推荐使用的 cudnn 函数转换为工作函数
- javascript - 这个字符串替换功能是如何工作的?
- java - 是否可以在两个 WAR 之间共享 Spring Web 端点?
- jquery - 引导模式仅在我的机器上不显示
- javascript - sinon 不会取代依赖
- delphi - Delphi 10.4 将默认 VirtualTree 的默认属性存储在 .dfm 文件中
- css - 如何使用 currentColor 在 SCSS 中更改 SVG 颜色
- asp.net - 如何在我的域站点核心中添加 www?网
- windows - 向 docker 中的 Windows 容器提供 Windows 凭据