为了账号安全,请及时绑定邮箱和手机立即绑定

php tp5 复杂sql构造问题

php tp5 复杂sql构造问题

PHP
茅侃侃 2019-03-09 06:44:19
有一个sql语句想用tp5的构造器构造一下,如下 Select * from tab1 where (a=1 and b=1) or (a=2 and b=2) or (a=3 and b=3).....or(a=N and b=N) 注意:当N等于多少,就有多少个or 连接,or的个数是变量,请问如何用Tp5的链式查询查出结果。困扰了我一天了,求大神解答! 在网上查了个例子$res = Db::table('fd_user')->where('sex','eq','男')->where(function($query){$query->where('name','like','李%')->whereOr('age','eq',18);})->buildSql(); 这样是可以,但是他的whereOr只有一个,我的需求是whereOr是不固定的,可能有一个也可能有两个,怎么破
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

    $sqlQuery = DB::table('tab1')->where(['a' => 1, 'b' => 1]);
    $n = 10;
    for ($i = 2; $i <= $n; $i++) {
        $sqlQuery = $sqlQuery->orWhere(function ($query) use ($i) {
            $query->where(['a' => $i, 'b' => $i]);
        });
    }
    return $sqlQuery->toSql();
查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 721 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信