Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Menggunakan Kad Liar dengan Pernyataan yang Disediakan dalam SQL untuk Pencarian Cekap dengan Selamat?

Bagaimanakah Saya Boleh Menggunakan Kad Liar dengan Pernyataan yang Disediakan dalam SQL untuk Pencarian Cekap dengan Selamat?

Linda Hamilton
Lepaskan: 2024-12-19 18:52:17
asal
1001 orang telah melayarinya

How Can I Safely Use Wildcards with Prepared Statements in SQL for Efficient Searching?

Menggunakan Kad Liar dalam Penyata Disediakan untuk Fungsi Carian

Apabila melaksanakan ciri carian menggunakan kata kunci sebagai parameter carian, ia menjadi perlu untuk menggunakan kata kunci LIKE dalam SQL. Walau bagaimanapun, menyepadukan LIKE dengan pernyataan yang disediakan boleh menjadi agak rumit.

Dalam contoh yang disediakan:

PreparedStatement pstmt = con.prepareStatement(
      "SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
Salin selepas log masuk

Pemegang tempat (?) dalam rentetan SQL mewakili parameter yang akan ditetapkan dengan kata kunci LIKE. Dalam kes ini, kata kunci% hendaklah dilampirkan pada nilai yang diberikan kepada parameter pemegang tempat.

Penyelesaian:

Untuk menggunakan LIKE dengan disediakan kenyataan, kad bebas ('%') hendaklah ditetapkan terus dalam nilai itu sendiri, bukan dalam rentetan SQL. Ini boleh dilakukan dengan menambahkan kad bebas pada nilai apabila menetapkan parameter:

pstmt.setString(1, notes + "%");
Salin selepas log masuk

Jika padanan awalan diperlukan, kad bebas hendaklah diletakkan pada permulaan nilai:

pstmt.setString(1, "%" + notes);
Salin selepas log masuk

Untuk perlawanan global, wildcard hendaklah diletakkan pada kedua-dua hujung nilai:

pstmt.setString(1, "%" + notes + "%");
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa istimewa aksara dalam nilai, seperti %, _, [, dan !, perlu dilepaskan untuk mengelakkan konflik dengan penggunaannya sebagai kad bebas dalam klausa LIKE. Contoh yang diberikan dalam respons menangani isu ini dengan secukupnya dengan menggantikan aksara ini dengan urutan melarikan diri sebelum menetapkan parameter.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Kad Liar dengan Pernyataan yang Disediakan dalam SQL untuk Pencarian Cekap dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan