Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Berbilang Keadaan LIKE dengan Cekap dalam Pertanyaan Pangkalan Data?
Melebihi ATAU: Pendekatan yang Lebih Efisyen untuk Keadaan LIKE Berbilang
Carian pangkalan data selalunya memerlukan kriteria yang rumit, selalunya melibatkan berbilang syarat LIKE. Walaupun menggunakan OR
adalah mudah, ia boleh menjadi tidak cekap dan kurang fleksibel untuk padanan corak yang meluas. Artikel ini membentangkan kaedah unggul menggunakan jadual sementara.
Kecekapan Jadual Sementara
Untuk mengurus berbilang corak LIKE dengan berkesan, buat jadual sementara untuk menyimpan corak ini. Jadual ini, sebagai contoh, boleh dinamakan patterns
dengan satu lajur, pattern
, memegang jenis data yang berkaitan (cth., VARCHAR
). Jika corak anda ialah 'ABC%', 'XYZ%' dan 'PQR%', penciptaan jadual dan populasi akan kelihatan seperti ini:
<code class="language-sql">CREATE TEMPORARY TABLE patterns ( pattern VARCHAR(20) ); INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');</code>
Menyertai untuk Pengoptimuman Padanan Corak
Dengan jadual sementara diisi, operasi JOIN
menapis jadual utama anda dengan cekap (tbl
) berdasarkan corak. Mana-mana baris dalam tbl
yang sepadan dengan mana-mana corak dalam patterns
akan disertakan dalam keputusan. Pertanyaannya ialah:
<code class="language-sql">SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);</code>
Mengendalikan Keputusan Pendua dengan DISTINCT
Jika lajur mungkin sepadan dengan berbilang corak, menghasilkan baris pendua, gunakan kata kunci DISTINCT
untuk mengembalikan hasil unik sahaja:
<code class="language-sql">SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);</code>
Ringkasan: Pendekatan Unggul
Menggunakan jadual sementara untuk mengurus berbilang keadaan LIKE menawarkan penyelesaian yang lebih bersih, cekap dan boleh disesuaikan. Pemisahan corak ini memudahkan pengurusan dan pengembangan kriteria carian. Hasilnya ialah prestasi pertanyaan yang dipertingkatkan, kebolehbacaan dan kebolehselenggaraan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Berbilang Keadaan LIKE dengan Cekap dalam Pertanyaan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!