Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memilih Rekod MySQL dengan Item Tertentu dalam Medan Tatasusunan Bersiri?

Bagaimana untuk Memilih Rekod MySQL dengan Item Tertentu dalam Medan Tatasusunan Bersiri?

Linda Hamilton
Linda Hamiltonasal
2024-11-07 07:59:03844semak imbas

How to Select MySQL Records with Specific Items in a Serialized Array Field?

Memilih Rekod MySQL dengan Data Tatasusunan Bersiri

Apabila menyimpan data dalam tatasusunan bersiri dalam medan pangkalan data MySQL, cabaran timbul apabila menanyakan rekod berdasarkan item tertentu dalam tatasusunan. Soalan berikut bertujuan untuk menangani isu ini:

Soalan:

Bagaimanakah saya boleh memilih semua rekod daripada jadual di mana item tertentu dalam medan tatasusunan bersiri sepadan dengan nilai yang diberikan?

Jawapan:

Walaupun menyimpan data dengan cara sedemikian sering tidak digalakkan kerana kesukaran yang dihadapinya untuk membuat pertanyaan, ia kekal sebagai pilihan yang berpotensi dalam situasi tertentu. Untuk melaksanakan pertanyaan yang dikehendaki, pendekatan berikut boleh digunakan:

Tatasusunan bersiri boleh dianggap sebagai rentetan dan klausa LIKE boleh digunakan untuk mencari rekod yang sepadan. Memandangkan PHP mensiri data menggunakan corak yang boleh diramal, adalah mungkin untuk mengenal pasti panjang setiap elemen dalam rentetan.

Walau bagaimanapun, kaedah ini mempunyai hadnya. Untuk tatasusunan bersiri yang kompleks, pertanyaan mungkin menjadi tidak berkesan. Selain itu, kerana klausa LIKE menggunakan aksara kad bebas, pengoptimuman indeks tidak tersedia, mengakibatkan prestasi yang lemah.

Oleh itu, untuk prestasi optimum dan fleksibiliti semasa menanyakan data yang melibatkan tatasusunan, adalah sangat disyorkan untuk menyimpan data dalam keadaan normal. borang.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Rekod MySQL dengan Item Tertentu dalam Medan Tatasusunan Bersiri?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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