【问题标题】:SQL fulltext-search with CONTAINS raises geometry error包含 CONTAINS 的 SQL 全文搜索引发几何错误
【发布时间】:2017-12-19 16:03:18
【问题描述】:

我的 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.

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

我不知道这个错误是什么意思,也不知道我与 geometry 有什么关系:我只是想在一个文本

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

我试图不使用 IN 或 LIKE,因为我打算在标签字段中一次搜索多个值。在示例中,我已将其调低为一个值,直到我让它完全正常工作为止。

【问题讨论】:

    标签: mysql sql full-text-search contains


    【解决方案1】:

    如您所料,MySQL 不支持 CONTAINS() 进行文本搜索:

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

    找到该信息here

    【讨论】:

    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 2013-07-16
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多