Bagaimanakah saya boleh menapis rekod MySQL berdasarkan item dalam tatasusunan bersiri?

DDD
Lepaskan: 2024-11-07 16:54:03
asal
579 orang telah melayarinya

How can I filter MySQL records based on an item within a serialized array?

MySQL Query dengan Serialized Array Filtration

Dalam pangkalan data MySQL, mungkin perlu untuk mendapatkan semula rekod berdasarkan item tertentu dalam bersiri tatasusunan yang disimpan dalam medan. Walau bagaimanapun, perbandingan item langsung dalam tatasusunan bersiri tidak disokong oleh bahasa SQL.

Walau bagaimanapun, terdapat dua pendekatan yang berpotensi untuk menangani cabaran ini:

Array Bersiri sebagai Rentetan

Memandangkan tatasusunan bersiri pada asasnya ialah rentetan, anda boleh memanfaatkan klausa LIKE untuk memadankan dan memilih rekod. Contohnya:

SELECT * FROM table WHERE (an item in my array) LIKE '%$n%'
Salin selepas log masuk

Pendekatan ini melibatkan membina semula tatasusunan bersiri menjadi rentetan menggunakan fungsi unserialize() PHP, mengindeks ke dalam tatasusunan untuk menyemak item yang dikehendaki, dan kemudian mensirikannya semula dengan serialize() .

Penormalan Pangkalan Data

Jika pertanyaan kerap memerlukan mengakses item individu dalam tatasusunan bersiri, adalah sangat disyorkan untuk menormalkan struktur data dengan menyimpan setiap item sebagai baris yang berasingan dalam jadual yang berkaitan. Ini memberikan prestasi yang lebih baik dan fleksibiliti pertanyaan, kerana ia menghapuskan keperluan untuk penghuraian rentetan yang berpotensi kompleks dan operasi LIKE.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menapis rekod MySQL berdasarkan item dalam tatasusunan bersiri?. 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