使用CONTAINS进行SQL全文搜索会引发几何错误

时间:2017-07-14 14:01:06

标签: mysql sql full-text-search contains

我的php代码生成一个sql查询,如下所示:

SELECT id, title, files, rating, DATE_FORMAT(date, '%d %M %Y') AS fancydate
FROM ArtArchive
WHERE CONTAINS (tags, 'Pepper')
ORDER BY date DESC

它返回错误:
HY000 - 3055 - Geometry byte string must be little endian.

标签是一个VARCHAR(255)索引为FULLTEXT
我通过使用tags LIKE '%Pepper%'得到了查询,所以我确定CONTAINS是有原因的。

我无法弄清楚这个错误意味着什么,也不知道我对所有事情的几何的处理方式:我只是想在一个中找到单词 文本

在检查了多个示例之后,我很确定我一直在使用正确的语法。我还尝试了以下内容:CONTAINS (tags, '"Pepper"')CONTAINS (tags, 'Pepper')CONTAINS (tags, "'Pepper'"),但没有不同的结果。

我正在尝试不使用IN或LIKE,因为我打算在tags字段中一次搜索多个值。我已经将它调整到示例中的一个值,直到我完全开始工作。

1 个答案:

答案 0 :(得分:0)

MySQL不支持CONTAINS()进行文本搜索,正如您所期望的那样:

  

MySQL在处理时只识别CONTAINS SQL函数   空间数据。它需要两个图形对象作为参数,和   返回1或0,具体取决于第一个对象是否完全包含   第二。设计为OpenGIS框架的实现,   MySQL CONTAINS函数对普通字符串不起作用   如果你尝试它会产生错误。 MySQL只识别LIKE   处理信息串时的STRCMP和STRCMP功能

找到该信息here