MySQL:将“LIKE”搜索转换为全文?

问题描述 投票:1回答:2

我有一个非常简单的LIKE搜索MySQL,我想转换成全文。问题是我需要能够实现它,以便它以X开头。如下例所示:

SELECT column FROM table WHERE column LIKE "startswith%"

正如您所看到的那样,查询将返回以“startswith”开头的所有结果。我需要用全文来做这件事。

这可能吗?

mysql search full-text-search transform sql-like
2个回答
2
投票

不,这不是全文的工作原理(它实际上只是一个下面有松散词的列表,没有关于相对于字符串的位置的信息)但是没有理由不能将LIKE ...作为额外的WHERE子句。如果你没有在column上获得另一个密钥,那么FULLTEXT仍然可以帮助获得更小的结果子集。如果你在column上有一把钥匙,那么使用FULLTEXT是没用的。

您可以使用ADD INDEX (column(123));(仅将前123个字符编入索引)在列的开头设置一个键。这也适用于text / blob列(在后一种情况下,它是你给出的二进制长度)。


0
投票

我不确定MySQL,但在SQL Server中你可以将列转换为varchar并对结果执行LIKE,如下所示:

SELECT column FROM table WHERE CONVERT(varchar(255), column) LIKE 'startswidth%'

由于这是ANSI标准,我认为MySQL也会处理这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.