【发布时间】:2016-09-11 22:26:29
【问题描述】:
我有这个问题
SELECT * FROM category WHERE NAME LIKE '%GTX 980%'
这工作得很好,但有时当我输入例如 GTX 790 或任何其他时,它不会显示结果。
查询是否有任何方法可以代表由空格分隔的单词从行中搜索,例如在“GTX 790”查询中应该使用 GTX 和 790 等关键字进行搜索并显示组合结果!!
【问题讨论】:
-
您可能希望研究 MySQL 的 FULLTEXT 搜索功能。
-
您能否提供一个示例,说明如何将其优化为 FULLTEXT 搜索?
-
拆分GTX和980,进行两个不同的查询,从而增加GTX被找到的机会。甚至可以进行 3 个或更多查询,例如 %TX,因为它也可以是 CTX 或 RTX;同样,GT%,因为它也可以是 GTR 等。在你的代码中放置一些适当的业务逻辑,这肯定会提高效率,但是由于同时运行大量查询,会降低性能。我的建议也是考虑 Elastic Search。