Mysql sütuna php ile serialized veri içine büyük değeri alın

1 Cevap php

Bir seri hale getirilmiş verileri içine büyük değerini almak için yolu nedir. Örneğin benim sütunda 'rating' bu var:

a:3:{s:12:"total_rating";i:18;s:6:"rating";i:3;s:13:"total_ratings";i:6;}

Ben bir sorgu ile 3 büyük 'rating' nasıl seçebilirsiniz?

çok teşekkürler

1 Cevap

SQL'de bunu yapmak isterseniz, muhtemelen bir yığın bakıyoruz SUBSTRING_INDEX(field,':',@offset) çağırır. Bu very tüyler ürpertici olacaktır. Db bir nesnenin bir tefrika versiyonunu saklamak sebat için bir kolaylık olduğunu, ancak kalıcı bir depolama yöntemi olarak kabul edilmemelidir. Sorgular için tefrika bir dize kullanarak ısrar ederseniz, bir ilişkisel db tüm gücünü kaybettim ve siz de bir metin dosyasında dizeleri depolamak olabilir.

En iyi seçenek (kullanıcı onlar ziyaret son kez ne yaptığını hatırlamak gibi), sadece Persistance amaçlı tefrika dizesi kullanın ve düzgün normalize alanları ve tabloları hesaplamalar için gereken veri depolamak için. Sonra kolayca bilmeniz gerekenler sorgulayabilirsiniz.

Diğer seçenek alanlar, diğer bazı kriterleri (örneğin DATE_ADDED alan son haftası içinde) karşılayacak uygulama katmandaki tüm nesneleri reinstantiate ve orada bunları karşılaştırmak whos satırları tüm 'rating' dizeleri seçmektir.