2013-02-21 3 views
1

im не очень частый пользователь подобного предложения, но теперь у меня есть требование, я хочу получить некоторые файлы на основе его имени. я попытался сКак использовать специальный символ в подготовленном сообщении java

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

рядом я попытался вытекания персонажу

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

оба пути, когда я создать подготовленное заявление, и его выполнение дает ошибку,

пожалуйста, помогите мне, как я могу использовать %?

Заранее спасибо

+0

Пожалуйста отправьте сообщение об ошибке. Как еще мы можем знать, что происходит не так? –

+0

Вы пытались '' SELECT * FROM FILES WHERE FILENAME LIKE '%?%' "'? ** РЕДАКТИРОВАТЬ ** Обратите внимание на «символ –

+0

это сообщение об ошибкеMessage» У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '%' co '%' по строке 1 ' 2013-02-21 18: 51: 47,445 ОШИБКА [STDERR] com.mysql.jdbc.exceptions .jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '%' co '%' в строке 1 – Ekata

ответ

0

Я согласен с ответом на капот, но я думаю, что вы также хотите знак процента после строки поиска, основываясь на исходном сообщении.

Так, что-то вроде:

"%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

Спасибо tht works :) – Ekata

+0

Приятно слышать, если он исправил проблему, то pls принимают ответ – cowls

Смежные вопросы