当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Query Builder Where - 类別

优质
小牛编辑
129浏览
2023-12-01

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