java - JDBC MYSQL 语法错误异常

标签 java mysql sphinx

我正在使用 JDBC/SphinxQL(Sphinx 版本 2.01 Beta)执行以下查询

带有 WHERE 子句:

ResultSet res = stmt.executeQuery("SELECT * FROM myindex WHERE MATCH('name')");

没有 WHERE 子句

ResultSet res = stmt.executeQuery("SELECT * FROM myindex");

但是在这两种情况下,我都会收到以下相当大的错误:

  com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 
sphinxql: syntax error, unexpected WHERE, expecting $end near
 'WHERE Variable_name ='language' OR Variable_name = 
'net_write_timeout' OR Variable_name = 'interactive_timeout'
 OR Variable_name = 'wait_timeout' OR Variable_name = 
'character_set_client' OR Variable_name = 'character_set_connection'
 OR Variable_name = 'character_set' OR Variable_name 
= 'character_set_server' OR Variable_name = 'tx_isolation'
 OR Variable_name = 'transaction_isolation' OR Variable_name
 = 'character_set_results' OR Variable_name = 'timezone' 
OR Variable_name = 'time_zone' OR Variable_name = 
'system_time_zone' OR Variable_name = 'lower_case_table_names'
 OR Variable_name = 'max_allowed_packet' OR
 Variable_name = 'net_buffer_length' OR Variable_name = 
'sql_mode' OR Variable_name = 'query_cache_type' 
OR Variable_name = 'query_cache_size' OR Variable_name = 'init_connect''

我根本不明白这个错误...非常感谢您的帮助!

最佳答案

SphinxQL 无法识别不同的子句,例如我们 timezone、interactive_timeout、net_write_timeout 等这就是这些查询失败的原因。您必须使用不同的 MySQL 客户端,该客户端不会发布此类不必要的内容 - 只是您的普通查询。或者您可以尝试 SphinxSerach 服务来向开发人员指出该问题。

关于java - JDBC MYSQL 语法错误异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6378439/

相关文章:

java - 将数据插入mysql数据库-java eclipse

mysql - 您会在父表中添加一个owner_id,还是在子表中添加一个is_owner?

java - 无法在java中使用proxycontrol创建jmx文件

java - Main.java 以及简单的静态 double 计算

java - 来自 Java 的 Rhino JS/ScriptEngine - 整数输入,双倍输出?

php - Sphinx 实时索引 UPDATE 语句不影响所有行

php - 让 Sphinx 过滤搜索结果

java - float 不能超过256?

mysql - 使用mysql启动两个独立的事务

php - 搜索错误: select: memory exhausted | SPHINX Search