📅  最后修改于: 2023-12-03 15:23:58.071000             🧑  作者: Mango
在 Laravel 中,where
方法是查询构建器最常用的方法之一。它允许你筛选数据库表中符合特定条件的数据。
where
方法接收两个参数:列名和指定的值。下面是一个查询所有 users
表中 name
列为 'John'
的用户的例子:
$users = DB::table('users')
->where('name', 'John')
->get();
这个查询将返回一个包含所有符合条件的用户的集合。
如果你需要一次查询多个条件,你可以使用多个 where
方法来实现。这样做将自动把这些条件统一成一个 AND
关系。例如:
$users = DB::table('users')
->where('name', 'John')
->where('age', '>', 18)
->get();
这个查询将返回所有名字为 'John'
,并且年龄大于 18
岁的用户。
有些情况下,你可能需要使用原始的 SQL 表达式来构建条件。为了实现这个目标,你可以使用 whereRaw
方法。例如,下面的查询将返回 所有名字为 'John'
或者是年龄大于 18
岁的用户:
$users = DB::table('users')
->whereRaw('name = ? or age > ?', ['John', 18])
->get();
你可以使用 where
方法的约定情况来简化一些查询。例如,如果你想要查询名字为 'John'
以及对应的电子邮件地址为 'john@doe.com'
的用户,那么你可以这么写:
$users = DB::table('users')
->whereName('John')
->whereEmail('john@doe.com')
->get();
这将自动转化为一个 WHERE 子句,其中包含两个值。这种语法只适用于等于(=
)操作符。
除了等于(=
)操作符外,查询构建器还支持其他几个常见的操作符:<
,>
,<=
,>=
,<>
和 !=
。你可以使用 where
方法的第三个参数指定操作符,例如:
$users = DB::table('users')
->where('votes', '>', 100)
->get();
这将查询所有 votes
属性大于 100
的用户。
如果你有一个复杂的查询语句,不能通过 where
方法的约定情况来构造,那么你可以使用 whereRaw
方法来手动拼接查询语句。例如:
$users = DB::table('users')
->whereRaw('votes = ? or name <> ?', [1, 'John'])
->get();
这将查询所有名字不为 'John'
或者 votes
属性为 1
的用户。
where
方法是 Laravel 中的一个非常常用的方法。当你需要筛选数据库表中符合特定条件的数据时,你可以使用 where
方法来实现。如果你需要一次查询多个条件,那么你可以使用多个 where
方法来实现,它们将自动被统一成一个 AND
关系。如果你需要查询复杂的条件,那么你可以使用 whereRaw
方法来手动拼接查询语句。