仅提供背景知识,我正在使用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语句在通过系统运行时不起作用,并返回错误,但在单独运行时可以工作。
希望有人可以提供帮助。
谢谢!
答案 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';