Menggunakan LIKE Wildcard dengan Penyata Disediakan dalam Pertanyaan MySQL
Dalam pertanyaan pangkalan data MySQL, pengendali LIKE membenarkan carian berasaskan corak. Apabila menggunakan pernyataan yang disediakan untuk melaksanakan pertanyaan sedemikian, adalah penting untuk memasukkan kad bebas LIKE dengan betul.
Satu keperluan biasa ialah melakukan carian padanan awalan. Untuk mencapai matlamat ini, kata kunci% harus dilampirkan pada istilah carian. Walau bagaimanapun, apabila menggunakan pernyataan yang disediakan, adalah tidak betul untuk menggabungkan kad bebas terus kepada nilai parameter.
Sebaliknya, tetapkan nilai itu sendiri dalam pertanyaan pernyataan yang disediakan. Untuk padanan awalan, ubah suai istilah carian seperti berikut:
notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Kata kunci ESCAPE menunjukkan aksara melarikan diri yang digunakan untuk melarikan aksara khas dalam kad bebas. Secara lalai, ia adalah garis miring ke belakang (), tetapi ia boleh ditukar kepada mana-mana aksara.
Begitu juga, untuk padanan akhiran, gunakan yang berikut:
pstmt.setString(1, "%" + notes);
Dan untuk global padanan:
pstmt.setString(1, "%" + notes + "%");
Dengan menetapkan kad bebas dalam istilah carian, pengendali LIKE boleh digunakan dengan berkesan dengan pernyataan yang disediakan untuk melaksanakan pelbagai berasaskan corak carian dalam pangkalan data MySQL.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan LIKE Wildcard dengan Penyata Disediakan dalam Pertanyaan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!