JDBC MYSQL 语法错误异常

发布于 2024-11-16 08:00:33 字数 1306 浏览 3 评论 0原文

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''

我根本不理解该错误。 .帮助表示赞赏!

I am executing the following queries with JDBC/SphinxQL (Sphinx version 2.01 Beta)

with a WHERE clause:

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

without a WHERE CLAUSE

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

But in both scenarios, I am getting the following pretty huge error:

  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''

I don't understand the error at all...help is appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泅人 2024-11-23 08:00:33

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

SphinxQL can't recognize different clauses such us
timezone, interactive_timeout, net_write_timeout etc That is why these queries failed. You have to use different MySQL client that doesn't post such unnedded stuff - just your plain query. Or you could try SphinxSerach services to point the developers to that issue.

怪我太投入 2024-11-23 08:00:33

您的 MATCH 谓词格式不正确。

更改:

SELECT * FROM myindex WHERE MATCH('name')

SELECT * FROM myindex WHERE MATCH(some_column) AGAINST ('name')

You have incorrectly formatted your MATCH predicate.

Change:

SELECT * FROM myindex WHERE MATCH('name')

To

SELECT * FROM myindex WHERE MATCH(some_column) AGAINST ('name')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文