获得序列化数据的最大价值的方法是什么?例如,我有这个在我的专栏'评级':使用php将序列化数据的最大价值转化为mysql列
a:3:{s:12:"total_rating";i:18;s:6:"rating";i:3;s:13:"total_ratings";i:6;}
我如何选择3最大'评级'的查询?
非常感谢
获得序列化数据的最大价值的方法是什么?例如,我有这个在我的专栏'评级':使用php将序列化数据的最大价值转化为mysql列
a:3:{s:12:"total_rating";i:18;s:6:"rating";i:3;s:13:"total_ratings";i:6;}
我如何选择3最大'评级'的查询?
非常感谢
你可能看着一堆SUBSTRING_INDEX(field,':',@offset)
电话,如果你想这样做的SQL。这将是非常 grisly。在数据库中存储对象的序列化版本是持久性的一种方便,但不应将其视为永久性存储方法。如果你坚持使用序列化字符串进行查询,那么你就失去了关系数据库的所有功能,并且你还可能将字符串存储在文本文件中。
最好的选择是使用序列化的字符串仅用于持久性目的(如记住用户上次访问的内容),并将计算所需的数据存储在正确标准化的字段和表中。然后,您可以轻松查询您需要知道的内容。
另一种选择是从字段满足某些其他条件(例如date_added字段在上周内)的行中选择所有'rating'字符串,重新实例化应用程序层中的所有对象并在那里比较它们。
谢谢dnagirl 我会想到将数据分隔成列的选项。 – returnvoid 2009-11-10 18:40:09
此数据的格式是什么?我从来没有见过它。 – Kai 2009-11-10 18:24:18
看起来像一个序列化的PHP对象 – dnagirl 2009-11-10 18:27:29