1

我正在尝试升级我网站上的搜索。

我偶然发现了包含。

我已将要搜索的列设置为 FULLTEXT。

我错过了什么?

title = Test is what i'm doing

SELECT * FROM test WHERE title LIKE "%Test%"

工作正常。

SELECT * FROM test WHERE CONTAINS('*', "'Test*'")

什么都不返回。

我努力了

SELECT * FROM test WHERE CONTAINS(title, "Test")

以及我能想到的一切。

包含 Contains 的所有内容均不返回任何内容。

这是我的表结构。

Action  Keyname Type    Unique  Packed  Column  Cardinality Collation   Null    Comment
 Edit    Drop   PRIMARY BTREE   Yes No  ID  15642   A           
 Edit    Drop   title   FULLTEXT    No  No  title   1       YES 

我在这里想念什么?

我正在使用 MySQL 5.5

4

2 回答 2

0

CONTAINS 仅在您拥有全文索引列时才有效。据推测,这并不到位。

按照http://msdn.microsoft.com/en-us/library/ms142497上的文档帮助进行设置。

于 2012-08-16T02:07:28.270 回答
0
  1. title必须为该列编制索引才能CONTAINS工作。列是否被title索引?

  2. 根据这篇文章,在 contains 关键字中使用通配符是有限制的。

  3. 根据您的数据库实现,双引号可能会导致意外结果。将其更改为单引号以确保安全。(MSDN上的一些示例使用双引号和单引号,但外引号是单引号(与您的示例不同)。

  4. 您确定您的数据库中有记录具有指定的字符串“Test”吗?

  5. 根据http://forums.asp.net/t/1639440.aspx上的回复之一,该CONTAINS运算符在 SQL Express 中不可用。您没有提及您正在使用哪个数据库,因此这可能适用也可能不适用。

于 2012-08-16T02:18:28.510 回答