以下代码是mysql中 or的用法(转换为sql)
and('morder.actual_total>0 or 'morder.uamount>0)and
$whereOrF[] = ['morder.actual_total','gt',0];
$whereOrF[] = ['morder.uamount','gt',0];
->where('name','eq','张三')
->where(function ($query) use ($whereOrF) {
$query->whereOr($whereOrF);
})
thinkphp中用Db写sql子查询大致格式
use() 中是变量传参
$order =Db::table('order')
->where('mid', 'IN', function ($query) use ($whereOrF,$startime,$endtime) {
$query->table('morder')
->field('morder.mid')
->join("hub_fen", "hub_fen.order_id=morder.id")
->where(function ($query) use ($whereOrF) {
$query->whereOr($whereOrF);
})
->where('morder.ymd', 'between', "$startime,$endtime")
->select();
})
->where('buy_type','eq','赠送')
->group('mid')
->column('mid');