Использование подстановочного знака "like" в подготовленном операторе

Я использую подготовленные операторы для выполнения запросов к базе данных 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();
159
задан ssn 21 January 2012 в 01:34
поделиться

1 ответ

мы можем просто сделать это, при помощи функции SQL CONCATE.

PreparedStatement pstmt = con.prepareStatement(
      "SELECT * FROM analysis WHERE notes like CONCAT( '%',?,'%')";
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();

это - работа отлично для моего случая.

0
ответ дан 23 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: