Bolehkah Anda Menggabungkan LIKE dan IN untuk Pertanyaan SQL yang Lebih Berkuasa?

DDD
Lepaskan: 2024-11-18 07:03:02
asal
303 orang telah melayarinya

Can You Combine LIKE and IN for More Powerful SQL Queries?

Menggabungkan LIKE dan IN untuk Pertanyaan SQL Lanjutan

Dalam SQL, operator LIKE sering digunakan untuk pemadanan corak, manakala operator IN membenarkan kami untuk memadankan nilai dengan senarai nilai tertentu. Walaupun pengendali ini mempunyai tujuan yang berbeza, anda boleh menggabungkannya untuk mencipta pertanyaan yang lebih berkuasa.

Mari kita pertimbangkan senario berikut: anda mempunyai jadual dengan lajur bernama "company_id" dan anda mahu memilih semua baris di mana "company_id" bermula dengan rentetan tertentu, seperti "M510", "M615", "M515", dan "M612".

Satu pendekatan mungkin menggunakan operator LIKE seperti berikut:

SELECT * FROM tablename WHERE company_id LIKE 'M510%'
Salin selepas log masuk

Walau bagaimanapun, ini hanya akan sepadan dengan baris yang bermula dengan "M510" betul-betul. Untuk memadankan berbilang rentetan, anda perlu membuat berbilang pertanyaan.

Menggunakan Subrentetan dengan IN

Penyelesaian yang lebih cekap ialah menggunakan subrentetan dengan operator IN. Fungsi SUBSTRING() mengekstrak bilangan aksara tertentu daripada rentetan, bermula dari kedudukan tertentu.

Untuk senario kami, kami boleh menggunakan pertanyaan berikut:

SELECT * FROM tablename
WHERE SUBSTRING(company_id, 1, 4) IN ('M510', 'M615', 'M515', 'M612')
Salin selepas log masuk

Pertanyaan ini akan ekstrak 4 aksara pertama daripada lajur "company_id" dan semak sama ada ia wujud dalam senarai nilai yang dinyatakan dalam klausa IN. Dengan menggabungkan subrentetan dengan IN, kita boleh mencapai padanan corak yang diingini tanpa perlu mengulung pada tatasusunan rentetan.

Atas ialah kandungan terperinci Bolehkah Anda Menggabungkan LIKE dan IN untuk Pertanyaan SQL yang Lebih Berkuasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan