Rumah > pangkalan data > tutorial mysql > Bagaimanakah Jadual Sementara Boleh Meningkatkan Kecekapan Apabila Menggunakan Berbilang Keadaan LIKE dalam SQL?

Bagaimanakah Jadual Sementara Boleh Meningkatkan Kecekapan Apabila Menggunakan Berbilang Keadaan LIKE dalam SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-08 14:12:40
asal
1047 orang telah melayarinya

How Can a Temporary Table Improve Efficiency When Using Multiple LIKE Conditions in SQL?

Gunakan jadual sementara untuk mengendalikan berbilang keadaan dalam operator LIKE

Dalam SQL, operator LIKE digunakan untuk melakukan padanan corak pada nilai rentetan. Walaupun ada kemungkinan untuk menggabungkan berbilang keadaan LIKE menggunakan operator OR, penyelesaian yang lebih baik ialah menggunakan jadual sementara.

Pertimbangkan pernyataan berikut:

select * from tbl where col like ('ABC%','XYZ%','PQR%');
Salin selepas log masuk

Pernyataan ini direka bentuk untuk mendapatkan semula semua baris dalam jadual tbl di mana lajur kol sepadan dengan mana-mana corak ABC%, XYZ% atau PQR%. Walaupun menggunakan OR adalah pendekatan yang cekap, untuk sejumlah besar keadaan ia boleh menjadi membosankan dan tidak cekap.

Sebaliknya, kita boleh mencipta jadual sementara yang dipanggil corak untuk menyimpan semua corak yang ingin kita padankan:

CREATE TEMPORARY TABLE patterns (
  pattern VARCHAR(20)
);

INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');
Salin selepas log masuk

Selepas mencipta jadual sementara, kita boleh menyertainya dengan jadual tbl menggunakan operator LIKE:

SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
Salin selepas log masuk

Dalam pertanyaan ini, lajur corak dalam jadual corak digunakan untuk memadankan lajur kol dalam jadual tbl. Hasilnya ialah senarai baris dalam tbl yang sepadan dengan mana-mana corak dalam jadual corak.

Perlu ambil perhatian bahawa jika baris dalam tbl sepadan dengan berbilang corak, baris itu akan muncul berbilang kali dalam hasil carian. Jika ini tidak diingini, anda boleh menggunakan pengubah suai pertanyaan DISTINCT:

SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);
Salin selepas log masuk

Ini akan memastikan bahawa setiap baris dalam tbl hanya muncul sekali dalam hasil carian, walaupun ia sepadan dengan berbilang corak.

Atas ialah kandungan terperinci Bagaimanakah Jadual Sementara Boleh Meningkatkan Kecekapan Apabila Menggunakan Berbilang Keadaan LIKE dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan