我有一个非常简单的 MySQL LIKE 搜索,我想将其转换为全文。问题是我需要能够实现它,以便它以 X 开头。如下例所示:
SELECT column FROM table WHERE column LIKE "startswith%"
如您所见,查询返回所有以“startswith”开头的结果。我需要用全文来做到这一点。
这可能吗?
最佳答案
不,这不是全文的工作方式(它实际上只是一个下面有松散单词的列表,没有关于相对于字符串的位置的信息)但是你没有理由不能拥有 LIKE ...
作为额外的 WHERE
子句。如果您在 column
上没有另一个键,FULLTEXT 仍然可以帮助获得较小的结果子集。如果您确实在 column
上有一个键,为此使用 FULLTEXT 是没有用的。
您可以使用 ADD INDEX (column(123));
在列的开头设置键(这只会索引前 123 个字符)。这也适用于文本/blob 列(在后一种情况下,它是您提供的二进制长度)。
关于MySQL:将 "LIKE"搜索转换为全文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6271602/