Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Cekap Mencari Jadual MySQL dengan Nilai Dipisahkan Koma Menggunakan FIND_IN_SET?

Bagaimana untuk Cekap Mencari Jadual MySQL dengan Nilai Dipisahkan Koma Menggunakan FIND_IN_SET?

Barbara Streisand
Barbara Streisandasal
2024-12-09 07:39:06446semak imbas

How to Efficiently Search MySQL Tables with Comma-Separated Values Using FIND_IN_SET?

Mencari Jadual MySQL dengan Nilai Dipisahkan Koma Menggunakan FIND_IN_SET

Dalam pangkalan data hubungan seperti MySQL, pengendalian nilai yang dipisahkan koma boleh menimbulkan cabaran semasa mencari untuk rekod tertentu. Katakan kita mempunyai dua jadual: pelanggan dan imap_emails, di mana jadual pelanggan mengandungi e-mel pelanggan dan jadual imap_emails menyimpan e-mel dengan medan "ke" dan "dari" yang dipisahkan koma.

Untuk mendapatkan semula e-mel daripada jadual imap_emails berdasarkan alamat e-mel pelanggan, kami boleh memanfaatkan fungsi FIND_IN_SET. Fungsi ini menentukan sama ada nilai tertentu wujud dalam senarai yang dipisahkan koma.

Sampel pertanyaan menggunakan FIND_IN_SET ialah:

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0;

Pertanyaan ini menyertai imap_emails dan jadual pelanggan berdasarkan syarat bahawa e-mel pelanggan disertakan dalam medan "kepada" e-mel dalam jadual imap_emails. Hasilnya akan merangkumi semua e-mel yang syarat ini dipenuhi.

Walau bagaimanapun, jika e-mel mengandungi dua atau lebih alamat e-mel, pertanyaan mungkin mengembalikan berbilang baris untuk satu e-mel. Untuk mengecilkan carian, anda boleh menggunakan syarat tambahan dalam klausa WHERE, seperti menyemak alamat e-mel tertentu atau mengehadkan bilangan hasil bagi setiap pelanggan.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Mencari Jadual MySQL dengan Nilai Dipisahkan Koma Menggunakan FIND_IN_SET?. 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