Laravel 查询生成器 where 和 or where

mysqlLaravel

1个回答

写回答

xiaojun123

2025-07-07 12:30

+ 关注

Laravel
Laravel

使用 Laravel 查询生成器的 where 和 or where 方法,可以轻松地构建复杂的数据库查询语句。这两个方法在查询数据时非常有用,可以根据特定的条件来过滤结果集。

where 方法

where 方法用于添加一个基本的查询条件。可以传递字段名、操作符和值来构建查询条件。下面是一个简单的示例:

$users = DB::table('users')

->where('age', '>', 18)

->get();

上面的代码将从名为 "users" 的数据表中获取年龄大于 18 岁的用户记录。

or where 方法

or where 方法允许在查询中添加多个条件,并且满足其中任意一个条件即可。使用 or where 方法可以构建更加复杂的查询语句。以下是一个示例:

$users = DB::table('users')

->where('age', '>', 18)

->orWhere('is_admin', true)

->get();

上面的代码将获取年龄大于 18 岁或者是管理员的用户记录。

案例代码

假设我们有一个名为 "articles" 的数据表,其中存储了一些文章的信息,包括标题和内容。我们希望根据用户提供的搜索关键词来查询匹配的文章。

以下是一个根据关键词进行文章搜索的案例代码:

$keyword = 'Laravel';

$articles = DB::table('articles')

->where('title', 'like', '%'.$keyword.'%')

->orWhere('content', 'like', '%'.$keyword.'%')

->get();

上面的代码将根据关键词 "Laravel" 在文章的标题或内容中进行模糊匹配,并返回匹配的文章结果集。

使用 where 和 or where 构建复杂查询

有时候,我们需要构建更复杂的查询语句,包含多个条件和操作符。

以下是一个示例,假设我们想要获取年龄大于 18 岁,并且是管理员或者是 VIP 用户的记录:

$users = DB::table('users')

->where('age', '>', 18)

->where(function ($query) {

$query->where('is_admin', true)

->orWhere('is_vip', true);

})

->get();

上面的代码使用了闭包来创建一个更复杂的查询条件。查询结果将返回年龄大于 18 岁,并且是管理员或者是 VIP 用户的用户记录。

使用 Laravel 查询生成器的 where 和 or where 方法,可以轻松构建复杂的数据库查询语句。通过灵活地组合条件和操作符,我们可以根据特定的要求来过滤结果集,从而更高效地查询数据。

无论是简单的查询条件还是复杂的查询逻辑,Laravel 提供的查询生成器都能满足我们的需求,并且使用自然语言的方式来构建查询语句,使代码更加可读和易于维护。

参考代码

$users = DB::table('users')

->where('age', '>', 18)

->get();

$users = DB::table('users')

->where('age', '>', 18)

->orWhere('is_admin', true)

->get();

$keyword = 'Laravel';

$articles = DB::table('articles')

->where('title', 'like', '%'.$keyword.'%')

->orWhere('content', 'like', '%'.$keyword.'%')

->get();

$users = DB::table('users')

->where('age', '>', 18)

->where(function ($query) {

$query->where('is_admin', true)

->orWhere('is_vip', true);

})

->get();

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号