【发布时间】:2015-07-01 01:44:27
【问题描述】:
我有一个 movies 表(具有来自旧项目的数据),其中字段 genre 包含由 PHP 序列化的值,例如:
a:3:{i:0;s:9:"动画";i:1;s:9:"冒险";i:2;s:5:"戏剧";}
我正在一个搜索页面中工作,我需要找到当前搜索结果的所有独特类型以用作页面中的过滤器,
例如,如果搜索结果是这 2 部电影:
- 黑暗骑士(动作、犯罪、戏剧)
- 黑骑士(奇幻、冒险、喜剧)
我想知道这些流派的组合,这将是:
['action', 'crime', 'drama', 'fantasy', 'adventure', 'comedy']
如何获取流派数组? (我使用的是Yii2)。
【问题讨论】:
-
反序列化、合并、array_unique
-
它不会成为大型结果的性能杀手吗?
-
如果你关心性能,你会规范你的数据库
-
....或对旧数据进行一次性转换....
-
您选择不修复损坏的数据库设计,每个操作都会比您选择修复它时慢;不要抱怨我们的解决方案速度很慢——您决定继续使用糟糕的数据库设计
标签: php mysql serialization yii2