是否有可能缩短这些学说问题?


    $q_auctions = Doctrine_Query::create()
       ->select('COUNT(t.id) AS num_items')
       ->from('Auctions t')
       ->where('t.ends_at > NOW()');
    $q_auctions_upcoming = Doctrine_Query::create()
       ->select('COUNT(t.id) AS num_upcoming')
       ->from('Auctions t')
       ->where('t.starts_at > NOW()');
    $q_auctions_closed = Doctrine_Query::create()
       ->select('COUNT(t.id) AS num_closed')
       ->from('Auctions t')
       ->where('t.ends_at < NOW()');

我在Doctrine里有3个非常相似的拍卖,但我不确定我能不能缩短它。我不喜欢重复这么多,所以也许有人能给我点小费。

首先,我不会担心这三个查询太多,除非你真的想减少这个页面的查询总数。starts_at和ends_at上的索引可能有助于加快速度,但这取决于这些表中的记录数量。

现在想到的唯一一件事就是执行一个查询,返回开始和结束日期,然后在PHP foreach循环中将它们解析为所需的三组。这将使查询从3个减少到1个,但增加了一些PHP开销。如果你有成百上千的拍卖,这可能不是一个好主意。

相关内容

最新更新