Расширение Zend DB Table для включения BETWEEN и LIMIT - PullRequest
2 голосов
/ 10 июня 2010

Ищу, как я могу расширить 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 ]

5 голосов
/ 10 июня 2010

Что касается МЕЖДУ, эта проблема была зарегистрирована на сайте Zend - похоже, она все еще открыта Упомянутый обходной путь должен использовать что-то вроде

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

Похоже, что вы можете использовать метод limit для добавления предложения LIMIT в ваш SQL, например,

->limit(0, 20);

Делись и наслаждайся.

1 голос
/ 24 декабря 2010

$ adapter = $ this-> getAdapter ();

$ dt = "datetime между? и?";
$ dt = $ adapter-> quoteInto ($ dt, "04-01-2010", null, 1);
$ dt = $ adapter-> quoteInto ($ dt, "05-01-2010", null, 1);
$ This-> где ($ дт)

0 голосов
/ 10 сентября 2011

Обратите внимание, что -> limit (0,20) означает отсутствие ограничения на количество возвращаемых строк, но пропустите первые 20 строк.

...