php - Sphinx 的这个 SQL 语句有什么问题吗?
问题描述
只是为了提供背景,我正在使用 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 语句在通过系统运行时不起作用并返回错误,但在自身运行时起作用。
希望有人可以提供帮助。
谢谢!
解决方案
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';
推荐阅读
- python - 自定义 Tkinter 下拉菜单
- mysql - 查询扩展和自然语言模式之间的区别
- python-3.x - freeopcua python,无法调用方法
- php - PHP 不重定向到联系 HTML 页面?
- matplotlib - 跨条件的箱线图,跨子条件的连接数据点(ggplot2 或 matplotlib)
- asp.net-mvc - 在 ASP.NET Core 2.1 MVC 中使用 Entity Framework Core 构建新控制器时出现问题
- sql - 如何使用sql过程从单列传递多个动态值
- android - 调色板中缺少 Android Studio GUI 组件
- python - OpenCV - 如何在轮廓内画一条线?
- python - 我如何在我的函数中使用 count() 函数?