Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari Berbilang Nilai dengan Cekap dalam Medan Tunggal dalam SQL?
Cara Mencari Berbilang Nilai dalam Medan Yang Sama dalam SQL
Apabila membina algoritma carian, selalunya perlu memutuskan rentetan ke bahagian komponennya dan cari setiap bahagian secara individu. Ini amat berguna apabila berurusan dengan istilah carian yang dipisahkan oleh ruang.
Untuk mencapai ini dalam SQL, seseorang mungkin mempertimbangkan untuk menggunakan operator LIKE dengan kad bebas untuk memadankan mana-mana aksara sebelum dan selepas setiap istilah carian. Walau bagaimanapun, pendekatan ini tidak begitu cekap, kerana ia memerlukan berbilang klausa LIKE dan boleh membawa kepada isu prestasi.
Sebaliknya, penyelesaian yang lebih berkesan ialah menggunakan operator IN. Operator IN membenarkan anda mencari nilai yang sepadan dengan mana-mana nilai yang dinyatakan dalam senarai. Sebagai contoh, pertanyaan berikut mencari produk yang mengandungi sama ada "Sony" atau "TV" dalam namanya:
SELECT name FROM Products WHERE name IN ('Sony', 'TV');
Untuk mencari berbilang nilai yang dipisahkan oleh ruang, hanya pecahkan rentetan kepada tatasusunan dan gunakan operator IN seperti berikut:
$search = "Sony TV with FullHD support"; $search = explode(' ', $search); SELECT name FROM Products WHERE name IN ( $search[0], $search[1], ... );
Sebagai alternatif, anda boleh menggunakan OR dengan operator LIKE seperti yang ditunjukkan di bawah:
SELECT name FROM Products WHERE name LIKE '%$search[0]%' OR name LIKE '%$search[1]%' OR ...;
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa menggunakan OR memerlukan di sekurang-kurangnya satu syarat adalah benar, manakala DAN memerlukan semua syarat adalah benar.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Berbilang Nilai dengan Cekap dalam Medan Tunggal dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!