我正在使用 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/