Pertanyaan Wildcard dalam Penyata Disediakan dengan LIKE
Apabila menggunakan pernyataan yang disediakan untuk pertanyaan pangkalan data, melaksanakan fungsi carian dengan kata kunci selalunya memerlukan penggunaan pengendali LIKE. Panduan ini menyediakan penyelesaian yang komprehensif tentang cara untuk mencapai ini dengan pernyataan yang disediakan.
Untuk menggunakan operator LIKE dengan pernyataan yang disediakan, anda boleh menambahkan simbol kad bebas (%) pada istilah carian dalam nilai yang disediakan pada yang disediakan. pernyataan, seperti:
String notes = "keyword%"; PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ?"); pstmt.setString(1, notes); ResultSet rs = pstmt.executeQuery();
Dengan menetapkan nilai dengan kad bebas yang dilampirkan, anda mendayakan pertanyaan yang sepadan dengan semua rekod di mana lajur "nota" mengandungi kata kunci input sebagai subrentetan.
Walau bagaimanapun, aksara tertentu mempunyai makna istimewa dalam SQL, termasuk %, !, [, _, dan ]. Untuk memastikan pengendalian yang betul bagi aksara ini, mereka harus dilepaskan menggunakan klausa ESCAPE dalam pernyataan yang disediakan. Contohnya:
String notes = "keyword%" .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Dengan menggantikan aksara ini dengan versi yang dilepaskan, pernyataan yang disediakan akan mentafsir kad bebas dengan betul dan memadankan rekod dengan sewajarnya.
Bergantung pada keperluan carian anda, anda boleh melaraskan peletakan kad bebas untuk mencapai senario padanan yang berbeza:
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Kad Liar dalam Penyata Disediakan dengan LIKE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!