Sphinx的此SQL语句有什么问题吗?

时间:2018-10-17 01:18:13

标签: php mysql sphinx

仅提供背景知识,我正在使用Sphinx通过PHP / MySQL进行搜索。这是通过我们拥有的系统运行的。这是有问题的SQL语句:

select * from [TABLE_NAME] where match('@keywords "homeschooling"') and status = 3 order by rand() limit 25

我说的是这个错误:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1

但是,如果我使用该确切的语句并单独运行它,它将起作用!所以我不确定是什么问题。

总而言之,SQL语句在通过系统运行时不起作用,并返回错误,但在单独运行时可以工作。

希望有人可以提供帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

Sphinx或SphinxSE不使用MySQL的全文本搜索语法。

创建Sphinx引擎表后:

CREATE TABLE t1
(
    id          BIGINT UNSIGNED NOT NULL,
    weight      INTEGER NOT NULL,
    query       VARCHAR(3072) NOT NULL,
    group_id    INTEGER,
    INDEX(query)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test";

字符串的查询部分与用于搜索的sphinx语法相对应:

SELECT * FROM t1 WHERE query='test it;mode=any';