php tp5 复杂sql构造问题

有一个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是不固定的,可能有一个也可能有两个,怎么破

茅侃侃
浏览 722回答 1
1回答

尚方宝剑之说

$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();
打开App,查看更多内容
随时随地看视频慕课网APP