Mencari Senarai Dipisahkan Koma dalam MySQL
Apabila berurusan dengan medan MySQL yang mengandungi senarai ID yang dipisahkan koma (cth., " 12,13,14,16"), menjadi mencabar untuk mencari secara khusus nilai tertentu dalam senarai itu menggunakan LIKE operator.
Seorang pengguna yang menghadapi isu ini mencari cara untuk mencari nilai tertentu (cth., "1") dalam medan sedemikian. Walau bagaimanapun, menggunakan pertanyaan seperti "SELECT ... WHERE field LIKE '%1%'" akan mengakibatkan pengambilan hampir semua entri disebabkan oleh kelaziman ID dalam julat 10-20 dalam medan.
Untuk menangani perkara ini, pengguna mempertimbangkan untuk mencari "%1,%" sebaliknya. Walau bagaimanapun, pendekatan ini tidak akan berfungsi untuk ID pertama dan terakhir dalam medan.
Penyelesaian: Fungsi FIND_IN_SET
Penyelesaian terletak pada penggunaan fungsi FIND_IN_SET dalam MySQL. FIND_IN_SET mengambil dua hujah: rentetan untuk dicari dan rentetan dipisahkan koma untuk mencari dalam. Ia mengembalikan kedudukan rentetan yang sedang dicari dalam rentetan carian, atau 0 jika ia tidak ditemui.
Dalam kes ini, untuk mencari "1" dalam medan, pertanyaannya ialah:
SELECT ... WHERE FIND_IN_SET('1', field)
Pertanyaan ini hanya akan mengembalikan baris dengan "1" hadir dalam senarai ID yang dipisahkan koma dalam medan.
Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Khusus dengan Cekap dalam Senarai Dipisahkan Koma dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!