Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Membuat Pertanyaan untuk Berbilang Nilai yang Disimpan dalam Lajur Pangkalan Data Tunggal?

Bagaimanakah Saya Boleh Membuat Pertanyaan untuk Berbilang Nilai yang Disimpan dalam Lajur Pangkalan Data Tunggal?

DDD
Lepaskan: 2024-12-16 10:04:20
asal
871 orang telah melayarinya

How Can I Query for Multiple Values Stored in a Single Database Column?

Mencari Berbilang Nilai dalam Lajur

Dalam pangkalan data hubungan, lajur biasanya memegang nilai tunggal untuk setiap baris. Walau bagaimanapun, dalam senario tertentu, anda mungkin perlu menyimpan berbilang nilai dalam satu lajur, dipisahkan oleh pembatas seperti koma. Ini boleh membawa kepada cabaran apabila menanyakan data, kerana pengendali konvensional seperti operator kesaksamaan tidak lagi berfungsi seperti yang diharapkan.

Sebagai contoh, pertimbangkan jadual berikut, yang menyimpan perhubungan ibu bapa-anak:

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

Jika kami cuba mencari ibu bapa yang mempunyai anak bernama "Alex" menggunakan pertanyaan:

WHERE children = 'Alex'
Salin selepas log masuk

kami akan mendapatkan semula keputusan sifar, walaupun Alex adalah anak kepada Maria. Ini kerana kami sedang mencari padanan yang tepat, yang tidak hadir kerana nilai berbilang dalam lajur kanak-kanak.

Untuk mengendalikan situasi sedemikian, kita perlu meneroka pendekatan alternatif:

Normalkan Skema:

Penyelesaian yang ideal adalah untuk menormalkan skema dan mencipta jadual berasingan untuk kanak-kanak, dengan baris berasingan untuk setiap anak dan rujukan kepada ibu bapa. Ini akan membolehkan pertanyaan yang cekap berdasarkan nama kanak-kanak.

Menggunakan FIND_IN_SET:

Jika menormalkan skema tidak dapat dilaksanakan, anda boleh menggunakan fungsi FIND_IN_SET, yang menyemak sama ada nilai wujud dalam senarai yang dipisahkan koma. Pertanyaannya ialah:

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

Ini akan mengembalikan ibu bapa yang mempunyai anak bernama Alex. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa FIND_IN_SET bukanlah pendekatan yang paling cekap dan harus digunakan hanya jika penormalan tidak berdaya maju.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Pertanyaan untuk Berbilang Nilai yang Disimpan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan