扩展Zend DB表以包括BETWEEN和LIMIT

时间:2010-06-10 08:15:38

标签: sql zend-db

我正在寻找如何扩展Zend_DB_Table以适应BETWEEN两个日期语法和LIMIT语法

我目前的构造是

class Model_DbTable_Tablelist extends Zend_Db_Table_Abstract
{
    protected $_name = 'mytable';

    $select = $this->select()
                    ->setIntegrityCheck(false)
                    ->from('mytable',
                        array('MyCol1', 'MyDate'));

}

我希望它扩展为等同于下面的查询

SELECT MyCol1,MyDate FROM mytable
WHERE MyDate BETWEEN '2008-04-03' AND '2009-01-02'
LIMIT 0,20

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

关于BETWEEN,在Zend网站上报告了this issue - 它似乎仍然是开放的。提到的解决方法是使用类似

的东西
$this->where('MyDate > ?', '2008-04-03')->where('MyDate < ?', '2009-01-02');

看起来您可以使用“limit”方法向SQL添加LIMIT子句,例如

->limit(0, 20);

分享并享受。

答案 1 :(得分:1)

$ adapter = $ this-&gt; getAdapter();

$ dt =“日期之间?和?”;
$ dt = $ adapter-&gt; quoteInto($ dt,“04-01-2010”,null,1);
$ dt = $ adapter-&gt; quoteInto($ dt,“05-01-2010”,null,1);
$这 - 化合物其中($ DT)

答案 2 :(得分:0)

请注意 - &gt; limit(0,20)表示对返回行数没有限制,但跳过前20行。