2011-02-14 86 views
0
SELECT MAX(sm_version) AS version_latest, 
     user_type  AS role_performed 
FROM usage_database 
WHERE user_id LIKE ('"+%eid_upper+"') 
     OR user_id LIKE ('"+eid_lower+"') 
GROUP BY user_type 

這是我的查詢。我已經設計了數據庫,使得我必須在查詢中輸入%。如果我在SQL開發人員上執行此查詢,那麼它工作正常。但是,當我在Java代碼中執行這裏面我把JSP文件,那麼它就會出現以下錯誤:在SQL查詢中使用%

令牌「%」

語法錯誤,無效的表達

什麼我做錯了,我該如何解決它?

+6

DON「T使用字符串連接構建查詢! – 2011-02-14 04:58:48

回答

0

我不好用JSP,但如果你想使用它作爲一個SQL通配符不應該%是查詢字符串的一部分?即

WHERE user_id LIKE ('%"+eid_upper+"') 

編輯:關於SQL注入的常見評論,yada yada yada

+0

@ user563577這個答案不首先,弗雷德第一,第二,答案是可怕的 – Phil 2011-02-14 05:38:33

+0

布朗:你可以刪除它,也許甚至有一個徽章(刪除接受的答案);-) – Thilo 2011-02-15 01:24:46

4
WHERE user_id LIKE ('%"+eid_upper+"') 
+0

只有OP可以改變公認的答案。你必須等到他回來(如果他不)。 – 2011-02-27 19:46:10

1

使用預處理語句和綁定變量!

where user_id like ('%' || ?)