Apabila menggunakan aksara khas dalam pertanyaan MySQL, adalah penting untuk melepaskannya untuk mengelakkan ralat sintaks dan memastikan pelaksanaan pertanyaan yang tepat. Ini amat penting apabila aksara khas adalah sebahagian daripada rentetan yang sedang dicari atau dibandingkan dalam pertanyaan.
Sebagai contoh, pertimbangkan pertanyaan berikut:
select * from tablename where fields like "%string "hi" %";
Pertanyaan ini bertujuan untuk mencari baris dalam jadual nama jadual di mana lajur medan mengandungi rentetan "rentetan hi". Walau bagaimanapun, petikan berganda dalam rentetan carian memecahkan sintaks SQL, mengakibatkan ralat berikut:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hi" "' at line 1
Untuk menyelesaikan isu tersebut, kita perlu melarikan diri daripada double petikan watak dalam rentetan carian. MySQL menyokong pelbagai jujukan melarikan diri untuk mewakili aksara khas, seperti yang digariskan dalam dokumentasi MySQL.
Menurut dokumentasi, untuk melepaskan petikan berganda, kita boleh menggunakan jujukan melarikan diri "". Jadi, pertanyaan yang diubah suai menjadi:
select * from tablename where fields like "%string \"hi\" %";
Dengan melarikan diri daripada aksara khas, pertanyaan kini boleh dilaksanakan dengan jayanya, kembali baris di mana lajur medan mengandungi rentetan "rentetan hi".
Perlu diambil perhatian bahawa penggunaan petikan berganda sebagai pembatas rentetan bukanlah amalan SQL standard adalah disyorkan untuk menggunakan petikan tunggal Ini memudahkan proses melarikan diri, kerana hanya petikan tunggal dalam rentetan carian yang perlu dilepaskan petikan:
select * from tablename where fields like '%string "hi" %';
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Aksara Khas dalam Pertanyaan MySQL untuk Mengelakkan Ralat Sintaks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!