Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mencari Rekod dengan Berbilang Nilai dengan Cekap dalam Lajur Pangkalan Data Tunggal?

Bagaimanakah Saya Boleh Mencari Rekod dengan Berbilang Nilai dengan Cekap dalam Lajur Pangkalan Data Tunggal?

Susan Sarandon
Lepaskan: 2024-12-28 02:51:10
asal
565 orang telah melayarinya

How Can I Efficiently Find Records with Multiple Values in a Single Database Column?

Mencari Rekod dengan Berbilang Nilai dalam Lajur

Dalam pangkalan data hubungan, adalah perkara biasa untuk menyimpan berbilang nilai dalam satu lajur. Walau bagaimanapun, apabila menanyakan data dengan lajur sedemikian, mungkin sukar untuk mengasingkan nilai tertentu. Mari kita terokai senario di mana kita mempunyai jadual dengan lajur "kanak-kanak" yang mengandungi berbilang nama yang dipisahkan dengan koma.

Masalah:

Pertimbangkan jadual berikut:

id name children
1 Roberto Michael,Dia
2 Maria John,Alex
3 Mary Alexandre,Diana

Objektifnya adalah untuk mencari ibu bapa yang mempunyai anak bernama Alex. Semasa menggunakan "WHERE children = 'Alex'" adalah sesuai, ia gagal kerana berbilang nama dalam setiap sel. Menggunakan "WHERE children LIKE '%Alex%'" mengembalikan padanan tambahan yang tidak berkaitan.

Skema Dinormalkan:

Untuk menangani isu ini, skema jadual boleh dinormalkan dengan membuat meja berasingan untuk kanak-kanak dengan satu baris untuk setiap kanak-kanak. Jadual asal kemudiannya boleh digabungkan dengan jadual anak untuk mencari ibu bapa dengan anak tertentu. Walau bagaimanapun, jika penyelesaian ini tidak boleh dilaksanakan, terdapat alternatif:

Fungsi FIND_IN_SET:

Fungsi MySQL FIND_IN_SET() boleh digunakan untuk menyemak sama ada nilai tertentu terdapat dalam senarai dipisahkan koma. Untuk senario ini, pertanyaannya ialah:

WHERE FIND_IN_SET('Alex', children)
Salin selepas log masuk

Pertanyaan ini akan mengembalikan baris yang 'Alex' ditemui dalam lajur 'kanak-kanak'.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari Rekod dengan Berbilang Nilai dengan Cekap dalam Lajur Pangkalan Data Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan