1、查询价格小于1000元的待支付订单(0) 和 大于2500年的已支付、已完成、售后中的订单(2,3,5)
$where1 = [
'order_status' => ['eq',0],
'order_price' =>['elt',1000],
];
$where2 = [
'order_status' => ['in','2,3,5'],
'order_price' => ['egt',2500],
];
$where['_complex'] = [$where1,$where2,'_logic'=>'OR'];
$where['user_id'] = ['eq',$userId];
对应的sql语句就是这样
SELECT
*
FROM
order
WHERE
user_id = 1
AND (
(
order_status = 0
AND order_price < 1000
)
OR (
order_status IN (2, 3, 5)
AND order_price > 2500
)
)
2、如果是针对不同字段对应同一个值,条件可以这样写
$where['goods_name|filter_name'] = $goods_name;
sql可以这样写
SELECT goods_name from goods where goods_name = '手机' or filter_name = '手机'
3.对null 值条件的判断
$where['code'] = ['exp','is not null'];