Bagaimana untuk Mencari Nilai Khusus dalam Medan Dipisahkan Koma dalam MySQL?

Barbara Streisand
Lepaskan: 2024-11-08 00:01:03
asal
341 orang telah melayarinya

How to Search for Specific Values in a Comma-Separated Field in MySQL?

Mencari dalam Medan Dipisahkan Koma dalam MySQL

Dalam MySQL, senario tertentu mungkin timbul apabila data disimpan dalam format dipisahkan koma , walaupun amalan yang disyorkan menasihati menentangnya. Ini menimbulkan cabaran apabila cuba melakukan carian tepat dalam medan tersebut. Pertimbangkan contoh berikut:

Jadual mengandungi medan dengan nilai daripada jadual lain yang disimpan sebagai senarai dipisahkan koma:

12,13,14,16
Salin selepas log masuk

Tugas di tangan ialah mencari nilai khusus dalam ini medan menggunakan pertanyaan seperti:

SELECT ... WHERE field LIKE '%1%'
Salin selepas log masuk

Walau bagaimanapun, disebabkan sifat data, pertanyaan sedemikian akan sepadan dengan hampir semua entri, kerana kebanyakan ID biasa berada dalam julat yang sempit.

Untuk menangani isu ini, carian yang lebih khusus diperlukan. Daripada menggunakan %1%, pertimbangkan untuk menggunakan %,1,% dalam keadaan SUKA. Ini akan memadankan nilai yang mengandungi 1 didahului dan diikuti dengan koma.

Malangnya, pendekatan ini mempunyai pengehadan untuk nilai pertama dan terakhir dalam senarai yang dipisahkan koma, kerana ia tidak akan dipadankan dengan corak.

Oleh itu, pendekatan berbeza adalah perlu. MySQL menyediakan fungsi berkuasa yang dipanggil FIND_IN_SET, yang membolehkan seseorang mencari dalam senarai yang dipisahkan koma:

SELECT ... WHERE FIND_IN_SET('1', field)
Salin selepas log masuk

Menggunakan FIND_IN_SET akan mengembalikan kedudukan nilai yang ditentukan dalam senarai yang dipisahkan koma, atau 0 jika nilai tidak ada. Ini membolehkan carian yang tepat dan cekap walaupun dalam struktur data yang tidak ideal.

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai Khusus dalam Medan Dipisahkan Koma dalam MySQL?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!