【发布时间】:2011-07-06 15:45:48
【问题描述】:
过去两天我一直在尝试找到解决此问题的方法,因此任何可以提供解决方案或链接到某个地方的人都可以找到我需要知道的内容,这将对我大有帮助。
我在 CakePHP 中有以下模型关系
Keyword hasMany Click
我想构建一个查询(通过 $this->Keyword->find 或使用自定义查询),该查询将返回按上周获得的点击次数排序的类似关键字列表。不幸的是,我不能只使用 counterCache 'click_count' 字段来执行此操作,因为我只需要计算上周发生的点击次数。为了使事情更复杂,我还必须在关键字字段中添加一个 LIKE() 条件。
这是我目前得到的:
$result = $this->Keyword->find('all',array(
'conditions' => array(
'word_count >' => $keyword['Keyword']['word_count'],
'UPPER(keyword) LIKE' => "%".strtoupper($keyword['Keyword']['keyword'])."%"
),
'recursive' => 0,
'limit' => 10
));
我只需要添加一个位,按上周 Click.created 所在的关联点击记录的数量对这些结果进行排序。我已经计算出该部分应该如下所示:
array(
'conditions' => array(
'Click.created >' => date("Y-m-d",strtotime("1 week ago"))
),
'fields' => array(
'COUNT(Click.keyword_id) as count'
),
'group' => 'Click.keyword_id',
'order' => 'count DESC'
);
我只是不确定这部分应该放在哪里。
请问有人能让我摆脱痛苦吗?谢谢:)
【问题讨论】:
标签: mysql sql cakephp cakephp-1.3 cakephp-1.2