有一个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();
- 1 回答
- 0 关注
- 721 浏览
添加回答
举报
0/150
提交
取消