十二、PHP框架Laravel学习笔记——构造器的查询表达式

本文详细介绍了如何在 Laravel 中使用 select()、addSelect()、DB::raw()方法进行列选择,以及where查询的灵活运用,包括多种条件操作符和数组条件表达式。深入探讨了原生SQL在复杂查询中的应用,以及havingRaw()方法的高级筛选技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.select 查询

  1. select()方法可以制定你想要的列,而不是所有列;
//设置显示的列,设置列别名 
$users = DB::table('users')->select('username as name', 'email')->get(); 

在这里插入图片描述
在这里插入图片描述

  1. addSelect()方法,可以在你基础的查询构造器上再增加想要显示的字段;
//给已经构建好的查询添加更多字段 
$base = DB::table('users')->select('username as name', 'email'); 
$users = $base->addSelect('gender')->get(); 

在这里插入图片描述

  1. DB::raw()方法可以在 select()内部实现原生表达式,否则解析错误;
//结合原生 SQL 实现复杂查询 
$users = DB::table('users')->select(DB::raw('COUNT(*) AS id, gender')) ->groupBy('gender') ->get(); 

在这里插入图片描述
在这里插入图片描述

  1. 也可以直接使用 selectRaw()方法实现内部原生;
//或者直接使用 selectRaw()方法实现原生 
$users = DB::table('users')->selectRaw('COUNT(*) AS count, gender') ->groupBy('gender') ->get(); 

在这里插入图片描述

  1. 还可以通过 havingRaw()方法实现更精准的分组筛选;
//使用 havingRaw 方法实现分组筛选 
$users = DB::table('users')->selectRaw('COUNT(*) AS count, gender') 
	->groupBy('gender') ->havingRaw('count>5') ->get(); 

在这里插入图片描述

二.where 查询

  1. where()查询,即条件查询,完整形式需要字段表达式和值三个;
//where 查询完整形式 
$users = DB::table('users')->where('id', '=', 19)->get();

在这里插入图片描述

  1. 大部分情况下,是等于用的比较多,就可以省略掉=号参数;
//where 查询完整形式 
$users = DB::table('users')->where('id', 19)->get(); 
  1. 当然,还有>、<、>=、<=、<>、like 等操作符;
users = DB::table('users')->where('price', '>=', 95)->get(); 
$users = DB::table('users')->where('username', 'like', '%小%')->get(); 

在这里插入图片描述
在这里插入图片描述

  1. 如果条件较多,可以用数组来分别添加条件,具体如下:
//如果条件都是等于,查看 SQL 语句用->toSql()替换->get() 
$users = DB::table('users')->where([ 'price' => 90, 'gender' => '男' ])->get(); 
//如果条件非等于 
$users = DB::table('users')->where([ ['price', '>=', 90], ['gender', '=', '男'] ])->get();

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值