想满足的sql:
SELECT
*
FROM
`p_notice`
WHERE
( ( send_time < (当前时间) AND user_type = 20 AND `json` LIKE '%123456%' ) OR ( send_time < (当前时间)AND user_type = 10 ) )
ORDER BY
`send_time` DESC
所在框架:thinkphp6
解决方式:_logic 和 _complex,结果 : 失败
$time = time();
$where_1['user_type'] = ['eq',10];
$where_1['send_time'] = ['lt', "$time"];
$where_1['_logic'] = 'or';
$map['_complex1']= $where_1;
$where_2['user_type'] = ['eq', 20];
$where_2['send_time'] = ['lt', "$time"];
$where_2['user_json'] = ['like', "%$no%"];
$map['_complex2'] = $where_2;
$list = Db::name('notice')->where($map)->select();
解决方式:whereRaw,结果: 成功
$time = time();
$whereOrRaw = "(send_time < {$time} AND user_type = 20 AND `json` LIKE '%{$no}%') or (send_time < {$time} AND user_type = 10)";
$list = Db::name('notice')->whereOrRaw($whereOrRaw)->paginate(10)->toArray();