sphinx的sql语句有什么问题吗?

c9qzyr3d  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(412)

作为背景,我使用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语句在通过系统运行时不起作用并返回错误,但在自己运行时起作用。
希望有人能帮忙。
谢谢!

kd3sttzy

kd3sttzy1#

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';

相关问题