PHP通过Sql生成带特定索引的数组
不明白原理,从别人代码中看到的,蛮好用,不过似乎性能不好:
SELECT id, sum(rmb) AS rmb, sum(device) AS device FROM log_table WHERE date>'2012-10-20' GROUP BY id
这样一段Sql,用PHP自带的pdo这样请求:
$result = $dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE|PDO::FETCH_GROUP);
可以得到一个数组,使用sql中第一个字段也就是id为索引,每个元素为一个含两个属性(rmb, device)的对象。换成json写法大概是这样:
// 以前
[{id: 1, rmb: 1, device: 1}, {id: 2, rmb: 2, device:2}]
// 现在
{'1': {rmb: 1, device: 1}, '2': {rmb: 2, device: 2}}
这样再操作会方便很多。
相关文章
从40秒到11毫秒:TiDB Cloud一次SQL深潜优化实战
此文参加了 TiDB 社区第四届专栏征文大赛,获得二等奖。感谢 TiDB,感谢 Gemini,感谢跟我一起做 […]
2025-05-1526 分钟
记一次不成功的数据库搬家
我这个博客始建于 2011 年,当时我从 ZOL 离职,表达欲旺盛的我,希望找个地方继续写博客,于是就买了台集 […]
2024-10-044 分钟
记一次 TiDB Cloud Serverless 超额导致的博客超时故障
今天早上起来,习惯性地刷新博客统计页面,发现 502。这可不妙,好不容易我坚持到现在终于有点流量,于是赶紧想办 […]
2023-06-177 分钟


