Query_Builder_Where クラス

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

注意: Query_Builder_Where は上記のクラスから継承されるため、 "現在のインスタンス" はそれらの 1 つが返却されます。

where()

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

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

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

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$column mixed 必須 カラム名か、 array($column, $alias) 、オブジェクト、もしくはコールバック
$op string
null
論理演算子: =, !=, IN, BETWEEN と LIKE 。何も提供されていない場合、 '=' が使われます。
$value string
null
カラムの値
返り値 現在のインスタンスを返します。
// select 文を準備
$query = DB::select('*')->from('users');

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

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

// ネストした where をコールバックで
$query->where(function($query){
	$query->where('email', 'jim@jim.com')
		->or_where('email', 'haha@joke.com');
});

// 実行結果:
// SELECT * FROM `users` WHERE `name` != "John" AND `surname` = "Doe"
// AND (`email` = "jim@jim.com" OR `email` = "haha@joke.com")

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

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

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$column string 必須 カラム名か、 array($column, $alias) 、オブジェクト、もしくはコールバック
$op string
null
論理演算子: =, !=, IN, BETWEEN 。何も提供されていない場合、 '=' が使われます。
$value string
null
カラムの値
返り値 現在のインスタンスを返します。
// select 文を準備
$query = DB::select('*')->from('users');

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

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

// ネストした where をコールバックで
$query->or_where(function($query){
	$query->where('email', 'jim@jim.com')
		->and_where('id', 4);
});

// 実行結果:
// SELECT * FROM `users` WHERE `name` != "John" OR `surname` = "Doe"
// OR (`email` = "jim@jim.com" AND `id` = 4)

where_open()

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

and_where_open()

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

静的 いいえ
パラメータ なし
返り値 現在のインスタンスを返します。
// select 文を準備
$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 で追加します。

静的 いいえ
パラメータ なし
返り値 現在のインスタンスを返します。
// select 文を準備
$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 クロージャを閉じます。

静的 いいえ
パラメータ なし
返り値 現在のインスタンスを返します。
// select 文を準備
$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 クロージャを閉じます。

静的 いいえ
パラメータ なし
返り値 現在のインスタンスを返します。
// select 文を準備
$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 メソッドは、結果/実行の順序をセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$column string 必須 カラム名
$direction string null 'asc' もしくは 'desc' が指定可能です。
返り値 現在のインスタンスを返します。
// select 文を準備
$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 メソッドは、 取得/更新する、レコード数の上限をセットします。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$number int 必須 行数
返り値 現在のインスタンスを返します。
// select 文を準備
$query = DB::select('*')->from('users');

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

// SELECT * FROM `users` LIMIT 10