Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencari Berbilang Nilai dengan Cekap dalam Medan Tunggal dalam SQL?

Bagaimana untuk Mencari Berbilang Nilai dengan Cekap dalam Medan Tunggal dalam SQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 02:55:02973semak imbas

  How to Efficiently Search for Multiple Values within a Single Field in 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!

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