laravel中DB::raw方法用于做什么的,怎样用
Admin 2022-06-16 群英技术资讯 1003 次浏览
这篇文章主要介绍“laravel中DB::raw方法用于做什么的,怎样用”,有一些人在laravel中DB::raw方法用于做什么的,怎样用的问题上存在疑惑,接下来小编就给大家来介绍一下相关的内容,希望对大家解答有帮助,有这个方面学习需要的朋友就继续往下看吧。在laravel中,“DB::raw()”方法用于复杂的sql查询,该方法能够将查询到的结果集当成一个临时表,然后使用laravel的查询构造器语法进行分页处理,语法为“DB::raw('函数或者字段');”。

本文操作环境:Windows10系统、Laravel6版、Dell G3电脑。
在项目中遇到一个问题,复杂的sql查询,用laravel的查询构造器,非常的不方便,各种查询条件拼接一长串拼得脑瓜疼;然后想使用原生的sql语句来查询,然后又使用不了laravel的paginate()分页方法;这时候DB::raw()方法就派上用场了!语法的原理就是把你查询的结果集当成一个临时表,然后在使用laravel的查询构造器语法进行分页处理;
例1:
$users = DB::table('users')
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();例2:
DB::table('someTable')
->selectRaw('count(*), min(some_field) as someMin, max(another_field) as someMax')
->get();例3:
DB::table('someTable')->select(
array(
DB::raw('min(some_field) as someMin'),
DB::raw('max(another_field) as someMax'),
DB::raw('COUNT(*) as `count`')
)
)->get()例4:
SELECT
(CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) AS gender_text
FROM users;
$users = DB::table('users')
->select(DB::raw("
name,
surname,
(CASE WHEN (gender = 1) THEN 'M' ELSE 'F' END) as gender_text")
);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了PHP变量作用域(全局变量&局部变量)&global&static关键字用法,结合实例形式分析了PHP全局变量与局部变量的作用域,以及global、static关键字功能与使用技巧,需要的朋友可以参考下
用过Java、C等静态语言的同学调试代码经常是打个断点,然后轻松调试,而PHPer调试代码时经常是【echo $a;exit; 】非常的不方便,有的同学有时候打完断点没删就给commit上去了,这就造成了很多困扰,下面将介绍有效的方法。
在网站功能建设中,php随机数是常用的一个功能,比如用户注册时随机产生的验证码、又比如用户注册时生成随机的一组密码后可自行修改,当用户需要重置密码的时候也需要生成一个随机的密码······随机数就根据特定的规则(或在一个数组范围内)所自动产生的字符串,在php开发中应用广泛,不过php中的随机数也分好几种不同的情况,首先来认识一下PHP提供的随机数函数rand()。
主要函数:spl_autoload_register() — 注册给定的函数作为 __autoload() 的实现。下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧
php数组排序并输出:1、uasort使用一个用户自定义的比较函数来排序数组中的值,并保持索引关联。2、uksort()使用一个用户自定义的比较函数来排序数组中的键名称。3、usort()使用用户自定义比较函数来对数组中的值排序。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008