2011-06-16 55 views
0

我執行與JDBC/SphinxQL(Sphinx的版本2.01測試版)以下查詢JDBC MYSQL SyntaxErrorException

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

我不明白這個錯誤......幫助表示感謝!

+0

你可以在某種調試模式下運行sphinx並讓它在執行之前記錄它正在執行的真實SQL嗎? – Dan 2011-06-17 02:50:13

+0

即使連接到java中的sphinxql,我也遇到了麻煩......你的代碼是什麼?請幫忙 – 2011-08-01 17:56:06

回答

0

您錯誤地格式化了您的MATCH謂詞。

變化:

SELECT * FROM myindex WHERE MATCH('name') 

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

algorithmicCoder使用的是SphinxQL不直MySQSL。那裏的想法不同。 – 2011-06-17 02:07:17

+0

是的,這不是問題...即使沒有WHERE CLAUSE也會發生錯誤... – algorithmicCoder 2011-06-17 02:25:55

1

SphinxQL不能這樣我們 時區,interactive_timeout,net_write_timeout等這就是爲什麼這些查詢失敗的識別不同的條款。你不得不使用不同的MySQL客戶端,不會發布這樣的未發佈的東西 - 只是你的普通查詢。或者你可以嘗試使用SphinxSerach服務來指導開發人員解決這個問題。

+0

你是什麼意思「不同的MySQL客戶端」?你的意思是不同版本的MySQL?另外我該如何檢查MySQL版本是否發佈了所有這些內容......謝謝! – algorithmicCoder 2011-06-17 12:20:17

+0

我的意思是不同的庫或版本的客戶端,因爲我知道java客戶端在握手或基於服務器版本的請求期間設置不同的標誌。 – 2011-06-17 12:51:54

+0

只有當你沒有錯誤時,你纔會看到。因爲獅身人面像可以解析這個查詢SELECT * FROM YOUR_INDEX,但在該查詢中出現錯誤SELECT * FROM YOUR_INDEX OPTION character_set_connection ='utf8' – 2011-06-17 12:54:29