Pembendungan Rentetan MySQL yang Cekap: Melebihi substr()
MySQL selalunya memerlukan menyemak sama ada rentetan lajur ($haystack
) mengandungi subrentetan tertentu ($needle
). Walaupun fungsi substr()
mungkin dipertimbangkan, ia hanya mengesahkan padanan tepat pada permulaan rentetan.
Penyelesaian Optimum: LIKE
dan Kad Liar
Kaedah unggul melibatkan pengendali LIKE
MySQL untuk padanan corak. Pertanyaan ini menyemak dengan cekap subrentetan:
<code class="language-sql">SELECT * FROM `table` WHERE `column` LIKE '%{$needle}%'</code>
Simbol %
ialah kad bebas, sepadan dengan sifar atau lebih aksara. Oleh itu, pertanyaan mengenal pasti mana-mana baris yang $haystack
mengandungi $needle
pada sebarang kedudukan.
Pertimbangan Prestasi untuk Kebolehskalaan
Menggunakan LIKE
dengan kad bebas boleh menjejaskan prestasi pada set data yang besar. Untuk pangkalan data yang besar, pertimbangkan untuk melaksanakan pengindeksan teks penuh untuk meningkatkan kelajuan pertanyaan dengan ketara bagi carian rentetan sedemikian.
Atas ialah kandungan terperinci Bagaimana untuk memeriksa dengan cekap rentetan dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!