3

$takemysqlのlimit句の値である(limit)と$skip(offset)の2つの変数があります。

これで、CodeIgniterは制限句を逆方向に実行します。

例えば

$this->db->limit(5,10)LIMIT 10, 5MYSQLで生成されます。

limitとにかく、 2つの値のどちらが設定されているかに基づいて関数を呼び出す方法に頭を悩ませています。

基本的に、

両方とも設定されている場合は、電話をかけたい

$this->db->limit($take, $skip)

設定されている場合のみ$take電話したい

$this->db->limit($take)

$skip is set, e.g. ifしかし、 $ skip = 10`だけの場合、最初の10行を除くすべての行を表示したい場合は何と呼びますか。

電話しますか

$this->db->limit(null, $skip)または
$this->db->limit(0, $skip)または
$this->db->limit(false, $skip)または
完全に異なる何か?

4

3 に答える 3

5

私たち自身の質問に答えることであなたが探していた答えを見つけたと思いますが、codeigniterを使用して最初の10行を除くすべての行を取得したい場合は、次のようなことを行う必要があります(まだテストしていません):

$this->db->limit(18446744073709551615, 10)

Mysqlドキュメントによると

To retrieve all rows from a certain offset up to the end of the result set, you can use some large number for the second parameter.
于 2012-12-05T23:20:59.337 に答える
2

CodeIgniterには文書化されていないoffset機能があることが判明しました。

/**
* Sets the OFFSET value
*
* @param    integer the offset value
* @return   object
*/
public function offset($offset)
{
    $this->ar_offset = $offset;
    return $this;
}

だから、呼び出すだけで$this->db->offset($skip)うまくいきます!

于 2012-12-05T23:14:24.327 に答える
0

これoffsetは、 codeigniter3のアクティブレコードで機能する公式ドキュメントです。

offset($ offset)パラメーター:$ offset(int)–スキップする行数戻り値:
CI_DB_query_builderインスタンス(メソッドチェーン)

戻り値のタイプ:
CI_DB_query_builder

クエリにOFFSET句を追加します。

于 2018-11-10T22:02:58.707 に答える