📜  如何使用 where 关系 laravel - PHP (1)

📅  最后修改于: 2023-12-03 15:23:58.071000             🧑  作者: Mango

如何使用 where 关系 laravel - PHP

在 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 方法来手动拼接查询语句。