Rumah >pangkalan data >tutorial mysql >Klausa SQL WHERE: Bila hendak menggunakan '=' vs. 'LIKE'?
WHERE
Klausa: =
lwn. LIKE
Klausa SQL WHERE
menawarkan dua operator berbeza untuk perbandingan rentetan: =
(sama) dan LIKE
(kesamaan). Memahami perbezaan mereka adalah penting untuk hasil pertanyaan yang tepat.
Gelagat Pengendali
Pengendali =
melakukan perbandingan rentetan yang tepat. Ia menyemak padanan yang sama antara dua rentetan, dengan mengambil kira panjang rentetan dan kesetaraan aksara demi aksara.
Sebaliknya, pengendali LIKE
melakukan padanan corak. Ia membandingkan rentetan berdasarkan jujukan aksara, membenarkan penggunaan kad bebas (%
untuk sebarang jujukan aksara dan _
untuk satu aksara) untuk mencari padanan separa. Kedua-dua pengendali dipengaruhi oleh tetapan pengumpulan pangkalan data, yang mempengaruhi cara perbandingan aksara dikendalikan.
Contoh Ilustrasi
Pertimbangkan contoh berikut, menunjukkan kesan pengumpulan:
<code class="language-sql">SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci; -- Result: 0 (no match) SELECT 'ä' = 'ae' COLLATE latin1_german2_ci; -- Result: 1 (match)</code>
Di sini, 'ä' (umlaut 'a') tidak sepadan dengan 'ae' menggunakan LIKE
. Walau bagaimanapun, dengan =
, pengumpulan latin1_german2_ci
menganggap 'ä' dan 'ae' sebagai setara, menghasilkan perlawanan.
=
Butiran Operator
Piawaian SQL menyatakan bahawa =
perbandingan rentetan melibatkan:
Pada dasarnya, =
ialah penggunaan langsung peraturan pengumpulan yang ditetapkan.
LIKE
Mekanik Operator
LIKE
beroperasi secara berbeza:
=
, ia menggunakan pengumpulan semasa.%
dan _
) memanjangkan keupayaan pemadanannya melangkaui kesetaraan tepat.Memilih Operator yang Tepat
Pilihan antara =
dan LIKE
bergantung pada hasil yang diingini. =
adalah untuk padanan yang tepat, manakala LIKE
adalah untuk padanan corak yang fleksibel. Elakkan penukaran operator yang tidak perlu; pilih pengendali yang paling menggambarkan keperluan perbandingan anda. Pengoptimuman pramatang biasanya tidak digalakkan.
Atas ialah kandungan terperinci Klausa SQL WHERE: Bila hendak menggunakan '=' vs. 'LIKE'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!