📅  最后修改于: 2023-12-03 14:47:37.959000             🧑  作者: Mango
当我们在 Laravel 中使用 SQL 查询时,我们通常需要使用条件来筛选出特定的数据。
本文将介绍在 Laravel 中常用的 SQL 查询条件以及如何使用它们。
WHERE 条件用于限制查询结果的行集。您可以使用比较运算符(例如 =、> 或 <)来比较列的值。还可以使用 AND 和 OR 运算符,以及括号来定义更复杂的 WHERE 子句。
$users = DB::table('users')
->where('name', '=', 'John')
->get();
以上代码将从 users 表中检索名称为 John 的所有用户。
OR 条件允许您在 WHERE 子句中使用多个条件,并返回满足任何一个条件的行。
$users = DB::table('users')
->where('name', '=', 'John')
->orWhere('name', '=', 'Jane')
->get();
以上代码将检索名称为 John 或名称为 Jane 的所有用户。
IN 条件允许您检索具有指定列值之一的行。
$users = DB::table('users')
->whereIn('id', [1, 2, 3])
->get();
以上代码将从 users 表中检索具有 ID 为 1、2 或 3 的所有用户。
NOT IN 条件允许您检索具有值不属于指定集合的行。
$users = DB::table('users')
->whereNotIn('id', [1, 2, 3])
->get();
以上代码将从 users 表中获取其 ID 不是 1、2 或 3 的所有用户。
BETWEEN 条件允许您检索具有值在指定范围内的行。
$users = DB::table('users')
->whereBetween('votes', [1, 100])
->get();
以上代码将从 users 表中检索得票数在 1 到 100 之间的所有用户。
NOT BETWEEN 条件允许您检索具有值不在指定范围内的行。
$users = DB::table('users')
->whereNotBetween('votes', [1, 100])
->get();
以上代码将从 users 表中获取其得票数不在 1 到 100 范围内的所有用户。
可以使用 NULL 条件检索列为 NULL 或列不为 NULL 的行。
$users = DB::table('users')
->whereNull('updated_at')
->get();
以上代码将从 users 表中检索最后更新时间为 NULL 的所有用户。
$users = DB::table('users')
->whereNotNull('updated_at')
->get();
以上代码将从 users 表中检索最后更新时间不为 NULL 的所有用户。
LIKE 条件允许您检索包含特定字符串的行。您可以使用 % 通配符来表示任意字符。
$users = DB::table('users')
->where('name', 'like', 'J%')
->get();
以上代码将从 users 表中检索名称以 J 开头的所有用户。
NOT LIKE 条件允许您检索不包含特定字符串的行。
$users = DB::table('users')
->where('name', 'not like', '%test%')
->get();
以上代码将从 users 表中检索名称不包含 test 的所有用户。
以上是在 Laravel 中常用的 SQL 查询条件,使用这些条件可以更方便、高效地检索数据。