Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyoal Berbilang Corak LIKE dengan Cekap dalam MySQL?

Bagaimanakah Saya Boleh Menyoal Berbilang Corak LIKE dengan Cekap dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2025-01-20 13:27:10739semak imbas

How Can I Efficiently Query Multiple LIKE Patterns in MySQL?

Soal berbilang corak SUKA dengan cekap

Apabila data perlu sepadan dengan mana-mana satu daripada berbilang corak LIKE, persoalan timbul: Adakah MySQL menyediakan alternatif untuk menggunakan semula syarat ATAU?

Kaedah tradisional menggunakan syarat ATAU

Secara tradisinya, pertanyaan kelihatan seperti:

<code class="language-sql">SELECT *
FROM fiberbox f
WHERE
  f.fiberBox LIKE '%1740 %' OR f.fiberBox LIKE '%1938 %' OR f.fiberBox LIKE '%1940 %';</code>

Teroka alternatif

Matlamatnya adalah untuk mencari kaedah yang lebih bersih dan cekap, serupa dengan hipotesis LIKE IN(). Walaupun tiada binaan LIKE IN() langsung, terdapat pilihan lain.

Gunakan ungkapan biasa untuk padanan corak yang cekap

Salah satu cara untuk menggantikan berbilang keadaan ATAU adalah dengan menggunakan ungkapan biasa (regexp):

<code class="language-sql">SELECT *
FROM fiberbox f
WHERE
  f.field REGEXP '1740|1938|1940';</code>

Ungkapan biasa dalam pertanyaan ini sepadan dengan mana-mana nilai dalam lajur medan yang mengandungi corak '1740', '1938' atau '1940'. Pendekatan ini menggabungkan semua corak ke dalam satu pernyataan, memudahkan pertanyaan dan berpotensi meningkatkan prestasi, walaupun ini mungkin bergantung pada keadaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyoal Berbilang Corak LIKE dengan Cekap dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn