Saya menggunakan pernyataan yang disiapkan untuk mengeksekusi query database mysql. Dan saya ingin menerapkan fungsi pencarian berdasarkan kata kunci.
Untuk itu saya perlu menggunakan LIKE
kata kunci, yang banyak saya tahu. Dan saya juga telah menggunakan pernyataan yang sudah disiapkan sebelumnya, tetapi saya tidak tahu bagaimana menggunakannya dengan LIKE
karena dari kode berikut di mana saya akan menambahkan 'keyword%'
?
Bisakah saya langsung menggunakannya di pstmt.setString(1, notes)
as (1, notes+"%")
atau sesuatu seperti itu. Saya melihat banyak posting di web ini tetapi tidak ada jawaban yang baik di mana pun.
PreparedStatement pstmt = con.prepareStatement(
"SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
... LIKE '%' || ? || '%'
atau mirip - tapi itu jauh kurang fleksibel.WHERE UPPER(?) LIKE UPPER(?)
saat menggunakanpstmt.setString(2, "%" + notes + "%")
'%' || ? || '%'
seperti yang disebutkan dalam komentar 1 lebih baik, setelah semua? Saya tidak memiliki kesempatan untuk bereksperimen sekarang.Kode seperti ini:
Pastikan Anda TIDAK menyertakan tanda kutip '' seperti di bawah karena akan menyebabkan pengecualian.
sumber
kita dapat dengan mudah melakukan ini, dengan menggunakan fungsi CONCATE SQL.
ini berfungsi dengan baik untuk kasus saya.
sumber
Coba ini.
sumber
sumber
sumber