Rumah >Java >javaTutorial >Bagaimana untuk menggunakan LIKE Wildcard dengan Penyata Disediakan dalam Pertanyaan MySQL?

Bagaimana untuk menggunakan LIKE Wildcard dengan Penyata Disediakan dalam Pertanyaan MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 09:11:03871semak imbas

How to Use LIKE Wildcard with Prepared Statements in MySQL Queries?

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!

Kenyataan:
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