// TODO 1 使用 `where` 方法的回调函数来添加多个查询条件。该回调函数会接收一个 `$query` 对象参数,可以在其中调用多个 `where` 方法实现多条件查询。需要注意的是,多个 `where` 方法之间的关系是 **AND** 关系,即所有条件都要满足。最后调用 `select` 方法执行查询,并返回结果数组。
$query = Db::table('user') // 指定查询的表
->where(function ($query) {
$query->where('name', 'like', '张%') // 姓张
->where('phone', 'like', '156%') // 手机号以156开头
->where('gender', '=', '男') // 性别是男
->where('birthday', '>=', '2002-04-07 00:00:00') // 出生日期大于等于2002年4月7日
->where('birthday', '<', '2002-04-08 00:00:00'); // 出生日期小于2002年4月8日
});
$data = $query->select(); // 执行查询操作,并返回结果数组
// TODO 2 先使用 `where` 方法的回调函数将多个查询条件组合成一个 `$where` 对象。然后在主查询中直接传入 `$where` 对象,一次性实现多条件查询。最后调用 `select` 方法执行查询,并返回结果数组。此时所有条件之间的关系也是 **AND** 关系,即所有条件都要满足
$where = function ($query) {
$query->where('name', 'like', '张%') // 姓张
->where('phone', 'like', '156%') // 手机号以156开头
->where('gender', '=', '男') // 性别是男
->where('birthday', '>=', '2002-04-07 00:00:00') // 出生日期大于等于2002年4月7日
->where('birthday', '<', '2002-04-08 00:00:00'); // 出生日期小于2002年4月8日
};
$query = Db::table('user') ->where($where); // 将所有条件组合成一个 $where 对象,再一次性传入主查询中
$data = $query->select(); // 执行查询操作,并返回结果数组
// TODO 3 使用 `$where` 数组将多个查询条件存储起来。数组中的每个键值对分别代表一个查询条件,其键为查询字段名,其值为一个数组,其中第一个元素为比较运算符,第二个元素为比较的值。最后在主查询中直接传入 `$where` 数组,一次性实现多条件查询。需要注意的是,如果同一个字段有多个查询条件,后面的会覆盖前面的。最后调用 `select` 方法执行查询,并返回结果数组。
$where = [
'name' => '张%', // 姓张
'phone' => '156%', // 手机号以156开头
'gender' => '男', // 性别是男
'birthday' => ['>=', '2002-04-07 00:00:00'], // 出生日期大于等于2002年4月7日
'birthday' => ['<', '2002-04-08 00:00:00'], // 出生日期小于2002年4月8日
];
$query = Db::table('user') ->where($where); // 直接将 $where 数组作为参数传入 where 方法中
$data = $query->select(); // 执行查询操作,并返回结果数组