Я использую подготовленные операторы для выполнения запросов к базе данных mysql. И я хочу реализовать функцию поиска по ключевому слову.
Для этого мне нужно использовать ключевое слово LIKE
, это я знаю. И я также использовал подготовленные операторы раньше, но я не знаю, как использовать их с LIKE
, потому что из следующего кода, где я должен добавить 'keyword%'
?
Могу ли я напрямую использовать его в pstmt.setString(1, notes)
как (1, notes+"%")
или что-то вроде этого. Я вижу много сообщений об этом в Интернете, но нигде нет хорошего ответа.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
мы можем просто сделать это, при помощи функции SQL CONCATE.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like CONCAT( '%',?,'%')";
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
это - работа отлично для моего случая.