where的技巧。
今天做项目的时候因为有多个查询条件左右加了很多判断导致查询时间特别的长,有幸学到了一个技巧。真的是大神无处不在。
刚开始一个也加判断,结果自己忙的晕乎乎的也没有也好结果。有幸学到了一个好方法。
$where=array();
if($school)
{
$where['d.school'] = array('like',"%$school%");
}
if($lou)
{
$where['d.lou'] = array('like',"%$lou%");
}
if($hezihao){
$cc = db('message')->where('number',$hezihao)->value('id');
$where['d.thishezi'] = $cc;
}
if(!empty($ktime)){
$where['c.addtime'] = array(array('>',$ktime),array('<',$etime));//多个条件
}
if(!empty($shop)){
$where['a.id'] = $de;//单个条件
}
//真正的查询语句
$message=db('product')->alias('a')
->join('orderlist b',"a.id=b.pid")
->join('order c','c.ordernumber=b.oid')
->join('vip d','c.uid=d.id')
->field('a.title,b.pronum,c.*,d.thishezi,d.tel,d.school,d.lou,d.sushe,d.name,d.nikename')
->where($where)//这里直接填写$where即可
->group('c.ordernumber')
->order('b.addtime desc')
->limit('50')
->select();