【发布时间】:2014-04-22 23:35:03
【问题描述】:
我试图在table 中获得number of rows 中的counts 最后一个12 months,按月提供12 counts。
到目前为止,我有这种非常丑陋的做法:
SELECT (
SELECT COUNT(i.id) FROM intrusions i, devices d WHERE i.device_id = d.id AND d.primary_owner_id = '1' AND FROM_UNIXTIME(start_time/1000) like '2014-04%',
SELECT COUNT(i.id) FROM intrusions i, devices d WHERE i.device_id = d.id AND d.primary_owner_id = '1' AND FROM_UNIXTIME(start_time/1000) like '2014-03%',
SELECT COUNT(i.id) FROM intrusions i, devices d WHERE i.device_id = d.id AND d.primary_owner_id = '1' AND FROM_UNIXTIME(start_time/1000) like '2014-02%',
etc
)
这些表的设置使得1 user 可以有many devices 和1 device 可以有many intrusions,因此有额外的条件。
primary_owner_id 和date 将使用prepared statements 动态添加到PHP 中。有没有更好的方法来写这个,它不会涉及太多重复和绑定 24 个参数?任何帮助将不胜感激
【问题讨论】:
-
你不能做一个
GROUP BY吗?
标签: php mysql sql mysqli prepared-statement