Query_Builder_Where クラス

Query_Builder_Where クラスは、クエリ構築における条件及び制限を設定するロジックを扱います。 すべての種類の where ステートメント (BETWEEN や IN などを含む) はここで扱います。このクラスは、抽象クラスのためインスタンスは生成できず、同じ機能を共有する他のクラスに継承されます。 それらのクラスは次のとおりです。:

注意: Query_Builder_Where は上記のクラスから継承されるため、"current instance" はそれらの一つが返却されます。

where()

where メソッドはand_whereのエイリアスです。

and_where($column, $op = null, $value = null)

and_where メソッドは、WHERE ステートメントを追加します。

静的 No
パラメータ
パラメータ 規定値 説明
$column mixed 必須 Column name or array($column, $alias), object, or callback
$op string
null
Logic operator: =, !=, IN, BETWEEN and LIKE. If none is provided this will fallback to '='
$value string
null
カラムの値
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// 最初の where ステートメントをセット
$query->where('name', '!=', 'John');

// あたらしい条件を追加
$query->and_where('surname', 'Doe');

// ネストした where をコールバックで
$query->where(function($query){
	$query->where('email', '[email protected]')
		->or_where('email', '[email protected]');
});

// 結果:
// SELECT * FROM `users` WHERE `name` != "John" AND `surname` = "Doe"
// AND (`email` = "[email protected]" OR `email` = "[email protected]")

or_where($column, $op = null, $value = null)

or_where メソッドは OR WHERE ステートメントを追加します。

静的 No
パラメータ
パラメータ 規定値 説明
$column string 必須 Column name or array($column, $alias), object or callback
$op string
null
Logic operator: =, !=, IN, BETWEEN. If none is provided this will fallback to '='
$value string
null
カラムの値
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// 最初の where ステートメントをセット
$query->where('name', '=', 'John');

// あたらしい条件を追加
$query->or_where('surname', 'Doe');

// nested where through callback
$query->or_where(function($query){
	$query->where('email', '[email protected]')
		->and_where('id', 4);
});

// Resulting in:
// SELECT * FROM `users` WHERE `name` != "John" OR `surname` = "Doe"
// OR (`email` = "[email protected]" AND `id` = 4)

where_open()

where_open メソッドは、and_where_openのエイリアスです。

and_where_open()

and_where_open メソッドは、 SQL クロージャ を開き、それを AND で追加します。

静的 No
パラメータ None
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// where ステートメントをセット
$query->where('name', 'john');

// クロージャを開く
$query->and_where_open();

// SELECT * FROM `users` WHERE `name` = "John" AND (

or_where_open()

or_where_open メソッドは SQL クロージャを開き、それを OR で追加します。

静的 No
パラメータ None
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// where ステートメントをセット
$query->where('name', 'john');

// クロージャを開く
$query->or_where_open();

// SELECT * FROM `users` WHERE `name` = "John" OR (

where_close()

where_close メソッドは and_where_closeのエイリアスです。

and_where_close()

and_where_close メソッドは、SQL クロージャを閉じます。

静的 No
パラメータ None
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// where ステートメントをセット
$query->where('email', 'like', '%@example.com');

// クロージャを開く
$query->and_where_open();

// where ステートメントをセット
$query->where('name', 'John');
$query->or_where('surname', 'Doe');

$query->and_where_close();
// SELECT * FROM `users`
// WHERE `email` LIKE "%example.com" AND (`name` = "John" OR `surname` = "Doe")

or_where_close()

or_where_close メソッドは、SQL クロージャを閉じます。

静的 No
パラメータ None
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// where ステートメントをセット
$query->where('email', 'like', '%@example.com');

// クロージャを開く
$query->or_where_open();

// where ステートメントをセット
$query->where('name', 'John');
$query->and_where('surname', 'Doe');

$query->or_where_close();
// SELECT * FROM `users` WHERE `email` LIKE "%example.com" OR (`name` = "John" AND `surname` = "Doe")

order_by($column, $direction = NULL)

order_by メソッドは、結果/実行の順序をセットします。

静的 No
パラメータ
パラメータ 規定値 説明
$column string 必須 カラム名
$direction string null 'asc' もしくは 'desc'が指定可能です。
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// order by をセット
$query->order_by('name');
$query->order_by('email', 'asc');
$query->order_by('surname', 'desc');

// SELECT * FROM `users` ORDER BY `name`, `email` ASC, `surname DESC

limit($number)

limit メソッドは、 取得/更新する、レコード数の上限をセットします。

静的 No
パラメータ
パラメータ 規定値 説明
$number int 必須 The number of rows
返り値 Returns the current instance.
// prepare a select statement
$query = DB::select('*')->from('users');

// limit句をセット
$query->limit(10);

// SELECT * FROM `users` LIMIT 10