Meloloskan diri daripada Aksara Khas dalam Corak LIKE PostgreSQL
Meloloskan diri daripada aksara khas dalam corak LIKE adalah penting untuk memastikan padanan yang tepat. Sebagai contoh, pertimbangkan senario di mana anda mencari baris di mana lajur nama bermula dengan rentetan yang disediakan pengguna, seperti "rompak%". Walau bagaimanapun, jika input pengguna termasuk aksara khas seperti "_," ia akan menghasilkan positif palsu.
Mekanisme Melarikan Diri
PostgreSQL membolehkan anda melarikan diri daripada aksara khas menggunakan garis miring ke belakang () atau aksara melarikan diri yang ditentukan pengguna yang ditentukan dengan klausa ESCAPE. Untuk memadankan watak istimewa secara literal, anda mesti melarikan diri dua kali.
Contoh
Untuk memadankan "rob_" secara literal, anda akan menggunakan corak LIKE berikut:
WHERE name LIKE 'rob^^%'
Sebagai alternatif, anda boleh menggunakan klausa melarikan diri dan menentukan melarikan diri alternatif watak:
WHERE name LIKE 'rob_%node1^^node2.uucp@%' ESCAPE '^'
Ini akan sepadan dengan "john%node1^node2.uccp@" diikuti dengan mana-mana aksara.
Pertimbangan
SQL Generik Kenyataan
Berikut ialah pernyataan SQL generik yang boleh digunakan dengan atau tanpa standard_conforming_strings HIDUP, menggunakan penggantian aksara melarikan diri sebelah pelayan:
SELECT * FROM USERS WHERE name LIKE replace(replace(replace(,'^','^^'),'%','^%'),'_','^_') ||'%' ESCAPE '^'
Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Watak Khas dalam Corak SEPERTI PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!