0

SQLクエリに20の結果があるとしましょう。yii アクティブ レコードの制限を使用する場合、明らかに結果から最初の 4 つを取得しますが、同じクエリ結果で 2 番目の 4 つと 3 番目の 4 つを取得したい場合はどうすればよいでしょうか? SQL経由でそれを照会する方法は?

例えば

        $criteria2 = new CDbCriteria();
        $criteria2->select = 'USERID, ADID ,ADTYPE, ADTITLE, ADDESC, PAGEVIEW, DISPPUBLISHDATE';
        $criteria2->addCondition("STATUS = 1");
        $criteria2->order = '"t".PAGEVIEW DESC,"t".PUBLISHDATE DESC';
        $criteria2->limit = 4;
        $criteria2->with = array('subcat','adimages');
        $result = $this->findAll($criteria2);
        return $result;
4

1 に答える 1

1

ごめん :)

Oracleでページングする方法はこちらを参照してください(11gを使用していますか?) OracleでページングするためのLIMITおよびOFFSETの代替

Yii ではオフセットを設定するだけで、OCIConnector は sql の rownum を自動的に設定します。

    $criteria2 = new CDbCriteria();
    $criteria2->select = 'USERID, ADID ,ADTYPE, ADTITLE, ADDESC, PAGEVIEW, DISPPUBLISHDATE';
    $criteria2->addCondition("STATUS = 1");
    $criteria2->order = '"t".PAGEVIEW DESC,"t".PUBLISHDATE DESC';
    $criteria2->limit = 4;
    $criteria2->offset = 0; //4, 8 - COciCommandBuiled applyLimit use it
    $criteria2->with = array('subcat','adimages');
    $result = $this->findAll($criteria2);
    return $result;
于 2012-11-06T04:58:55.367 に答える