Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Nama Pengguna dengan Cekap daripada Lajur Dipisahkan Koma dalam Pangkalan Data?
Mengekstrak Nama Pengguna daripada Lajur Dipisahkan Koma
Pertimbangkan senario di mana anda mempunyai berbilang jadual: tblA (pengguna), tblB (nama pengguna), dan tblC (nomenklatur dengan ID pengguna dipisahkan koma). Matlamatnya adalah untuk mendapatkan semula semua nama pengguna apabila mencari nilai tatanama tertentu.
Pendekatan dan Had Sedia Ada
Pertanyaan yang disediakan cuba menggunakan cantuman silang dan fungsi subrentetan untuk mengekstrak userID pertama daripada nilai dipisahkan koma. Walau bagaimanapun, pendekatan ini tidak cekap dan tidak memberikan hasil yang tepat apabila terdapat berbilang ID pengguna yang dikaitkan dengan tatanama.
Skema Normalisasi dan Pertanyaan Diperbaiki
Adalah disyorkan untuk normalkan skema pangkalan data dengan memperkenalkan jadual simpang. Jadual tblC_user hendaklah mengandungi dua lajur: c_id (merujuk tblC) dan userID (merujuk tblB). Ini akan menghapuskan keperluan untuk ID pengguna yang dipisahkan koma dalam tblC.
Pertanyaan berikut menunjukkan cara untuk mengekstrak nama pengguna menggunakan skema biasa:
SELECT * FROM tblC c JOIN tblC_user cu ON (c.id = cu.c_id) JOIN tblB b ON (b.userid = cu.userid) WHERE c.nname = "new1";
Pertanyaan ini akan mendapatkan semula semua nama pengguna yang berkaitan dengan cekap. dengan tatanama "baru1".
Faedah Normalisasi
Menormalkan skema pangkalan data menawarkan beberapa kelebihan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nama Pengguna dengan Cekap daripada Lajur Dipisahkan Koma dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!