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%'
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')
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!