laravel 输出最后执行sql 附:whereIn的使用方法

在sql语句执行前

DB::enableQueryLog();

sql sql sql sql sql

dd(DB::getQueryLog());

DB::enableQueryLog();
    $data = UsersMenu::select('users_menu.*')
      ->join('users as a','a.id','=','users_menu.user_id')
      ->where('a.id', $user_id)->get();
//    dd($data);
//    DB::connection()->enableQueryLog();
//    $data = DB::query('select * from users_menu,users where users.id = users_menu.user_id');
    dd(DB::getQueryLog());

附:whereIn 后面跟的参数必须是数组

普通sql语句:SELECT users_menu . *

FROM users_menu
INNER JOIN users AS a ON a.id = users_menu.user_id
WHERE a.id

IN ( 1, 2 )

$data = UsersMenu::select('users_menu.*')
  ->join('users as a','a.id','=','users_menu.user_id')
  ->whereIn('a.id', $user_id);

此时的$user_id 是个数组才行

以上这篇laravel 输出最后执行sql 附:whereIn的使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Laravel Eloquent ORM 多条件查询的例子

    一.需求: 在数据搜索时最常见的就是调用同一个方法查询,而查询的字段却可能是其中一个或其中的几个字段一起组合查询,例如:对列表的搜索,基本上都是几个字段随意组合搜索.那么在model里就需要判断有那个字段组合,怎么组合. 网上找了很久,Laravel群里也问了几个,都说没有写过,于是自己写个吧.话不多说,见代码: function findByParam($param = array()) { $select = new Customer(); if (isset($param['name'])

  • Laravel关系模型指定条件查询方法

    对于关系模型来说,有时候我们需要甄别关联后结果,例如,班级和学生是一对多关联,我现在查询班级,但是想只显示正常状态,即状态为1的学生,因为有的学生从这个班级里面删除了,状态是4,那么我们在查询的时候就可以使用如下语法: 1.定义关联关系: Class模型: public function learners() { return $this->belongsToMany('App\Models\Customer', 'learner_relation', 'class_id', 'learner_

  • laravel 模型查询按照whereIn排序的示例

    实例如下所示: $ids = [5,7,3,1,2]; $data = Content::whereIn('id',$ids) ->select('id') ->get(); //查询结果是想按照wherein的顺序排序 //正确写法 $data = Content::whereIn('id',$ids) ->select('id') // ->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $i

  • 对laravel in 查询的使用方法详解

    今天遇到多条件搜索,其中需要用到in查询,但是laravel不支持 [ 'type', 'in', '1,2,3'] 这样的写法 经过一波百度,也没发现什么好的方法. 其中一种方法是: $where = function ($query) {$query->whereIn('id', [1,2])->orWhere('d_id', '=', '83');} 这样确实可以解决,是一种解决方法.但我总觉得还有更好的方法,找到了 DB::Raw(); 开始我是这样用的 但是这样总会在sql后面出现i

  • 基于laravel where的高级使用方法

    Laravel作为一个人见人爱的框架,相信很多人在使用,那就避免不了对Sql语句的应用,很多情况下,在多种字段作为条件查询使用where的时候,不需要复杂的原生语句, 使用一个闭包,就能达到你想要的效果. 以上这篇基于laravel where的高级使用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • laravel 输出最后执行sql 附:whereIn的使用方法

    在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); DB::enableQueryLog(); $data = UsersMenu::select('users_menu.*') ->join('users as a','a.id','=','users_menu.user_id') ->where('a.id', $user_id)->get(); // dd($data); // DB:

  • PHP获取MySQL执行sql语句的查询时间方法

    如下所示: //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function runtime($mode=0) { static $t; if(!$mode) { $t = microtime(); return; } $t1 = microtime(); list($m0,$s0) = explode(" ",$t); list($m1,$s1) = explode("

  • mysql命令行下执行sql文件的几种方法

    目录 第一种方法:未连接mysql数据库时 第二方法:在已经连接数据库的情况下,此时命令提示符为mysql>, 用MySQL的source命令导入SQL文件实战记录 达到目的:通过命令行的方式,将tsinfo180516.sql文件导入到数据库demo1中. 效果图 第一种方法:未连接mysql数据库时 在mysql命令行下执行sql文件 运行--cmd C:\Users\lenovo>mysql -u账号 -p密码 -D数据库名 < sql文件绝对路径 C:\Users\lenovo&

  • SpringBoot启动执行sql脚本的3种方法实例

    目录 背景 配置application.yml文件 自定义DataSourceInitializer Bean 启动时执行方法 Springboot自动执行sql文件 总结 背景 项目里后端需要计算坐标距离,想用sql实现算法,然后通过执行一个sql脚本,创建一个函数供各业务调用.我们需要在springboot项目启动时执行sql脚本,在网上一顿搜索,总结了有三种做法: 配置application.yml文件 自定义DataSourceInitializer Bean 启动时执行方法 第一种做法

  • Entity Framework Core中执行SQL语句和存储过程的方法介绍

    无论ORM有多么强大,总会出现一些特殊的情况,它无法满足我们的要求.在这篇文章中,我们介绍几种执行SQL的方法. 表结构 在具体内容开始之前,我们先简单说明一下要使用的表结构. public class Category { public int CategoryID { get; set; } public string CategoryName { get; set; } } 在Category定义了两个字段:CategoryID.CategoryName. public class Sam

  • Laravel中如何轻松容易的输出完整的SQL语句

    前言 laravel 中自带的查询构建方法 toSql 得到的 sql 语句并未绑定条件参数,类似于这样 select * fromuserswhereid= ? ,所以写了个扩展包 laravel-dump-sql,可以获取完整的 sql 语句. 源码 laravel-dump-sql - github.com/guanguans/l- 安装 $ composer require guanguans/laravel-dump-sql -v 发布服务 $ php artisan vendor:p

  • Yii框架在页面输出执行sql语句以方便调试的实现方法

    本文实例讲述了Yii框架在页面输出执行sql语句以方便调试的实现方法.分享给大家供大家参考.具体分析如下: 我们使用:yiidebugtb来调试(因为用他界面比较美观,不影响界面其他元素). 1.下载yiidebugtb,并且放入到 application.extensions.yiidebugtb 目录 2.修改main.php,加入如下代码: 复制代码 代码如下: 'log'=>array(     'class'=>'CLogRouter',     'routes'=>array

  • C#实现连接SQL Server2012数据库并执行SQL语句的方法

    本文实例讲述了C#实现连接SQL Server2012数据库并执行SQL语句的方法.分享给大家供大家参考,具体如下: 开发工具:Visual Studio 2012 数据库: SQL Server 2012 使用Visual Studio时还是直接和微软自家的SQL Server数据库连接比较方便,就像使用Eclipse时和MySQL连接便捷一样的道理 无论使用什么工具步骤都一样: 1. 首先保证相关工具都已经正确安装了 2. 开启数据库连接服务 3. 在开发工具中通过用户名和口令与数据库进行关

  • 使用BAT批处理执行sql语句的代码

    1.把待执行Sql保存在一个文件,这里为20110224.sql.2.新建一个扩展名.bat的批处理文件,输入下面命令并保存后,双击.bat文件,系统会自动执行20110224.sql的语句: 复制代码 代码如下: osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql osql参数见下面=======================================================================: E:\>osql

  • .Net core下直接执行SQL语句并生成DataTable的实现方法

    .net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs").ToList().而不允许返回DataSet.DataTable等弱类型.可能由于这个原因没有实现在.net core中DataTable,然而DataTable还是可能会用到的.我们这里就有一个数据仓库的需求,允许用户自行编写类似SQL语句,然后执行,以表格展示.因为语句是千变万化的,因此我也

随机推荐