1.使用数组查询,动态添加查询条件
$wrap = (new Query())->where($map);
if (!empty($project_id)) {
$wrap->where('find_in_set(' . $project_id . ', project_id)');
}
$numb = model('Data')->getDataNumb($wrap);
2.组合闭包查询,和上面例子效果类似
$wrap = function ($query) use($map, $project_id) {
$query->where($map);
if (!empty($project_id)) {
$query->where('find_in_set(' . $project_id . ', project_id)');
}
};
3.使用数组查询,针对某个字段or查询
$map[] = array(
'end_time', array('>=', date('Y-m-d H:i:s', strtotime($end_time_first))), array('null'), 'or'
);
4.使用数组查询,通过 Db::raw() 增加原生查询条件
$map = array(
array('id', '=', 1),
Db::raw('find_in_set(id, "1,2,3,4")')
);