Rumah >pangkalan data >tutorial mysql >Klausa SQL WHERE: Bila Perlu Digunakan = vs. SUKA?
Klausa SQL WHERE: Memilih Antara =
dan LIKE
Apabila menapis data rentetan dalam klausa WHERE
SQL, pemilihan antara =
dan LIKE
memberi kesan ketara kepada prestasi dan ketepatan pertanyaan. =
melakukan perbandingan rentetan langsung, manakala LIKE
menawarkan padanan kad bebas. Walau bagaimanapun, perbezaan asas mereka memerlukan pertimbangan yang teliti.
Perbezaan Pengendali
Bertentangan dengan andaian biasa, =
dan LIKE
berfungsi secara berbeza. =
membandingkan keseluruhan rentetan, manakala LIKE
membandingkan aksara secara individu. Kedua-dua pengendali dipengaruhi oleh tetapan pengumpulan, yang mentakrifkan peraturan perbandingan rentetan dan boleh mengubah hasil.
Perbandingan Seluruh Rentetan lwn. Watak demi Watak
=
merawat rentetan secara holistik. LIKE
, sebaliknya, menganalisis watak perbandingan demi watak. Perbezaan ini menjadi penting apabila mengendalikan aksara yang mungkin mempunyai tafsiran yang berbeza-beza bergantung pada pengumpulan.
Contoh Praktikal (MySQL)
Pertimbangkan contoh MySQL ini yang menggambarkan akibat praktikal:
<code class="language-sql">mysql> SELECT 'ä' LIKE 'ae' COLLATE latin1_german2_ci; +-----------------------------------------+ | 'ä' LIKE 'ae' COLLATE latin1_german2_ci | +-----------------------------------------+ | 0 | +-----------------------------------------+</code>
<code class="language-sql">mysql> SELECT 'ä' = 'ae' COLLATE latin1_german2_ci; +--------------------------------------+ | 'ä' = 'ae' COLLATE latin1_german2_ci | +--------------------------------------+ | 1 | +--------------------------------------+</code>
Di sini, LIKE
mengembalikan palsu kerana 'ä' tidak betul-betul sepadan dengan 'ae'. Walau bagaimanapun, =
kembali benar disebabkan latin1_german2_ci
pengumpulan, yang menganggap 'ä' dan 'ae' sebagai setara.
Ringkasnya
Pengendali terbaik (=
atau LIKE
) bergantung pada jenis perbandingan yang diingini. Untuk padanan rentetan yang tepat, =
adalah optimum. Untuk padanan rentetan separa menggunakan kad bebas, LIKE
ialah pilihan yang betul. Memahami perbezaan halus ini memastikan hasil pertanyaan yang tepat dan cekap.
Atas ialah kandungan terperinci Klausa SQL WHERE: Bila Perlu Digunakan = vs. SUKA?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!