Вы, вероятно, просматриваете кучу вызовов SUBSTRING_INDEX(field,':',@offset)
, если хотите сделать это в SQL. Это было бы очень ужасно. Хранение сериализованной версии объекта в БД - это удобство для постоянного хранения, но его не следует считать постоянным методом хранения. Если вы настаиваете на использовании сериализованной строки для запросов, вы потеряли всю мощь реляционной БД, и вы также можете хранить строки в текстовом файле.
Наилучший вариант - использовать сериализованную строку только для персистентных целей (например, для запоминания того, что пользователь делал в последний раз, когда он посещал), и хранить данные, необходимые для расчетов, в правильно нормализованных полях и таблицах. Тогда вы можете легко запросить то, что вам нужно знать.
Другой вариант - выбрать все строки 'rating' из строк, чьи поля соответствуют определенным другим критериям (например, поле date_added относится к последней неделе), заново создать все объекты на уровне приложения и сравнить их там.