2013-02-21 48 views
1

即時消息不是像like子句那麼頻繁的用戶,但是現在我有要求我想根據它的名字獲取一些文件。 我試着用如何在準備好的語句中使用特殊字符java

"SELECT * FROM FILES WHERE FILENAME LIKE "+"%"+"?"+"%"; 

下一個我試圖逃脫字符

"SELECT * FROM FILES WHERE FILENAME LIKE "+"\\%"+"?"+"\\%"; 

既當我創建準備語句並執行它給錯誤的方式,

請幫助我,我如何使用%?

在此先感謝

+0

請張貼的錯誤消息。我們怎麼能知道發生了什麼問題? – 2013-02-21 13:33:05

+0

你試過'「選擇*從FILENAME LIKE'%?%'」'? **編輯**注意'字符 – 2013-02-21 13:33:45

+0

這是錯誤messageMes​​sage'您的SQL語法中有錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'%'co'%'附近使用正確的語法。 2013-02-21 18:51:47,445錯誤[STDERR] com.mysql.jdbc.exceptions .jdbc4.MySQLSyntaxErrorException:您的SQL語法中有錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'%'co'%'附近使用正確的語法。 – Ekata 2013-02-21 13:37:32

回答

0

我同意cowls的回答,但我認爲你也想在搜索字符串之後找到一個百分號,這取決於你的初始文章。

所以,像這樣:

"%myfilename%" 
5

只是這樣做:

"SELECT * FROM FILES WHERE FILENAME LIKE ?"; 

然後通過如

"%.jpg" 

或使用您想用的任何通配符傳遞參數。

E.g.

PreparedStatement st = connection.prepareStatement("SELECT * FROM FILES WHERE FILENAME LIKE ?"); 
st.setString(1, "%.jpg"); 
ResultSet rs = st.executeQuery(); 
+0

謝謝你的作品:) – Ekata 2013-02-21 13:53:46

+0

很好聽,如果它解決了問題,請接受答案 – cowls 2013-02-21 13:55:32