Query_Builder_Where 类別

Query_Builder_Where 类別处理为查詢建立條件和限制邏輯, 每一種类型的 where 語句(包括 BETWEEN 和 IN 等等……)也在此处理。此类別不是實例化的(它是抽象) 但被分享相同函式的其他类別所擴充,这些类別是:

請注意: 因为被上列类別擴充,回傳的「目前實例」将会是那些其中之一。

where()

where 方法是 and_where 的別名。

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

and_where 方法附加一个 WHERE 語句。

靜態
參数
參数 类型 預設 描述
$column 混合 必要 行名稱或 array($column, $alias)、物件或回呼(callback)
$op 字串
null
邏輯操作符:=、!=、IN、BETWEEN 和 LIKE。如果沒有提供此将退回到 '='
$value 字串
null
行值
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定第一个 where 語句
$query->where('name', '!=', 'John');

// 然後附加一个新的條件
$query->and_where('surname', 'Doe');

// 透過回呼(callback)巢狀 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 字串 必要 行名稱或 array($column, $alias)、物件或回呼(callback)
$op 字串
null
邏輯操作符:=、!=、IN、BETWEEN。如果沒有提供此将退回到 '='
$value 字串
null
行值
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定第一个 where 語句
$query->where('name', '=', 'John');

// 然後附加一个新的條件
$query->or_where('surname', 'Doe');

// 透過回呼(callback)巢狀 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)

and_where_open()

and_where_open 方法開啟一个 SQL 閉包(closure)并使用 AND 附加它。

靜態
參数
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定一个 where 語句
$query->where('name', 'john');

// 開啟一个閉包(closure)
$query->and_where_open();

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

or_where_open()

or_where_open 方法開啟一个 SQL 閉包(closure)并使用 OR 附加它。

靜態
參数
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定一个 where 語句
$query->where('name', 'john');

// 開啟一个閉包(closure)
$query->or_where_open();

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

and_where_close()

and_where_close 方法開啟一个 SQL 閉包(closure)。

靜態
參数
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定一个 where 語句
$query->where('email', 'like', '%@example.com');

// 開啟一个閉包(closure)
$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 閉包(closure)。

靜態
參数
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定一个 where 語句
$query->where('email', 'like', '%@example.com');

// 開啟一个閉包(closure)
$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 字串 必要 行名稱
$direction 字串 null 可以設定为 'asc''desc'
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定排序
$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 整数 必要 列数
回傳 回傳目前實例
範例
// 預处理一个 select 語句
$query = DB::select('*')->from('users');

// 設定限制
$query->limit(10);

// SELECT * FROM `users` LIMIT 10