2010-10-15 81 views
0

我正在爲玩具商店製作一個Java應用程序並使用MS-Access數據庫。 我使用運算符「LIKE」使用用戶的關鍵字搜索數據庫中的產品。在Access中使用LIKE運算符而不是在Java中使用LIKE運算符

E.g.在訪問中:

SELECT * FROM tblToy WHERE toyName LIKE '*puppy*' OR toyBrand LIKE '*puppy*' 

這給了我期望的訪問結果。

但在Java中,當我運行此同一查詢返回null:

String query = "puppy"; 
    sql = "SELECT * FROM tblToy WHERE toyName LIKE '*" + query+"*' "+ 
       "OR toyBrand LIKE '*" + query + "*'"; 
     rs = db.executeQuery(sql); 
     while(rs.next()){ 

      String name = rs.getString("toyName"); 

      return name; 
     } 

     return null; 

誰能幫助我在這?我知道這一定是我現在錯過的一些簡單的東西,但我不知道該怎麼做。希望你們幫忙。

回答

0

我想與Java,你需要逃脫單引號,所以儘量使用\'您所有的單引號,然後嘗試%代替*如別人提到的,由於%是通配符SQL。

+0

感謝他現在的作品..你太棒了。 – 2010-10-16 00:33:08

+0

不客氣。事實上,我不是那麼好,我仍然像你一樣學習=)我記得一年前我經歷了幾乎完全相同的問題,我花了很長時間才弄清楚。我對你的案子猶豫不決,因爲當我經歷過逃脫單引號時,它在字符串生成中標記了一個錯誤,但你似乎沒有得到那個標誌。 – Evan 2010-10-16 00:49:29

+0

是絕對。但我沒有得到任何錯誤,它運作良好。再次感謝。 – 2010-10-16 02:05:21

0

根據您運行查詢的位置有兩種可能性,通配符*或%。在這種情況下,你需要%

+0

我試過「%」,但那不起作用。 – 2010-10-15 23:42:46