sql_query:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法

Posted

技术标签:

【中文标题】sql_query:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法【英文标题】:sql_query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 【发布时间】:2017-11-23 10:07:16 【问题描述】:

我是 mysql 和 sphinx 的新手,在开始实际项目之前尝试动手操作。 我想在 sphinxsearch 中的 2 个表上应用 UNION ALL。下面是我的sql查询

sql_query               = \
                (SELECT users.id AS uid, users.fname, users.lname, users.email \
                FROM users) \
                UNION ALL \
                (SELECT documents.id AS diid, documents.description \
                FROM documents);

但是当我使用 index 命令时,它会显示错误

ERROR: index 'my_search': sql_query: You have an error in your SQL 句法;检查与您的 MySQL 服务器版本相对应的手册 在'FROM users)附近使用正确的语法UNION ALL SELECT documents.id AS dii' 在第 1 行 (DSN=mysql://root:***@localhost:3306/testsphinx)。

【问题讨论】:

为什么"\"在查询中? sphinx 中多行查询的标准做法 【参考方案1】:

我认为 UNION 中的两个“子查询”应该具有相同的架构。即数据库将生成一个带有列的结果集。它只是行将来自不同的表。

如果想在 SPhinx 中索引两个表 - 在一个索引中,最好使用多个源

source users 
...
sql_query               = \
                SELECT users.id AS uid, users.fname, users.lname, users.email \
                FROM users
...


source documents 
...
sql_query               = \
                SELECT documents.id AS diid, documents.description \
                FROM documents
...


index index1 
   source users 
   source documents 
   path = /var/sphinx/index1
....

但也可以使它们过于独立的索引。这提供了 MOST 灵活性,如果需要,可以一起查询它们

sphinx> SELECT * from users,documents WHERE MATCH('toad') 

或者也可以单独查询它们。

【讨论】:

抱歉回复晚了,我们会测试并回复您。谢谢

以上是关于sql_query:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在附近使用的正确语法的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MariaDB 对应的手册

SQL 错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法

您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '' 附近使用正确的语法

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 ')' 附近使用的正确语法

错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册以获取正确的语法使用