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

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

作为背景,我使用sphinx通过php/mysql进行搜索。这是通过我们的系统运行的。下面是有问题的sql语句:

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

我在上面的陈述中发现了一个错误:

  1. 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引擎表后:

  1. CREATE TABLE t1
  2. (
  3. id BIGINT UNSIGNED NOT NULL,
  4. weight INTEGER NOT NULL,
  5. query VARCHAR(3072) NOT NULL,
  6. group_id INTEGER,
  7. INDEX(query)
  8. ) ENGINE=SPHINX CONNECTION="sphinx://localhost:9312/test";

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

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

相关问题