连贯查询之多条件查询where

连贯查询where默认and:

$m_xinxianshi = M('Xinxianshi');
                    // 通用查询条件
                    // $cond['is_deleted'] = '0';
                    //$Model->join('t2 on t1.id = t2.uid', 'left')->join('t3 on t2.uid = t3.sid', 'left')->select();
                    $cond['lb_xinxianshi.beipinglunid'] = '0';
                    $cond['lb_xinxianshi.xianshi'] = '0';
                    $xinxianshi_list = $m_xinxianshi
                    ->table('lb_xinxianshi')
                    ->join("LEFT JOIN lb_user ON lb_xinxianshi.openid = lb_user.openid")
                    ->join("LEFT JOIN lb_shequ ON lb_xinxianshi.shequid = lb_shequ.id")
                    ->field('lb_xinxianshi.*,lb_user.name as name,lb_shequ.mingcheng as mingcheng')
                    ->where($cond)
                    ->order('id desc')
                    ->page($page, $pagesize)
                    ->group('id')
                    ->select();

SELECT lb_xinxianshi.*,lb_user.name as name,lb_shequ.mingcheng as mingcheng FROM `lb_xinxianshi` LEFT JOIN lb_user ON lb_xinxianshi.openid = lb_user.openid LEFT JOIN lb_shequ ON lb_xinxianshi.shequid = lb_shequ.id WHERE lb_xinxianshi.beipinglunid = '0' AND lb_xinxianshi.xianshi = '0' GROUP BY id ORDER BY id desc LIMIT 0,10
如要改成查询条件为OR:代码改为:

$m_xinxianshi = M('Xinxianshi');
                    // 通用查询条件
                    // $cond['is_deleted'] = '0';
                    //$Model->join('t2 on t1.id = t2.uid', 'left')->join('t3 on t2.uid = t3.sid', 'left')->select();
                    $cond['lb_xinxianshi.beipinglunid'] = '0';
                    $cond['lb_xinxianshi.xianshi'] = '0';
                    $cond['_logic'] = 'or';
                    $xinxianshi_list = $m_xinxianshi
                    ->table('lb_xinxianshi')
                    ->join("LEFT JOIN lb_user ON lb_xinxianshi.openid = lb_user.openid")
                    ->join("LEFT JOIN lb_shequ ON lb_xinxianshi.shequid = lb_shequ.id")
                    ->field('lb_xinxianshi.*,lb_user.name as name,lb_shequ.mingcheng as mingcheng')
                    ->where($cond)
                    ->order('id desc')
                    ->page($page, $pagesize)
                    ->group('id')
                    ->select();

即:$cond['lb_xinxianshi.beipinglunid'] = '0'; $cond['lb_xinxianshi.xianshi'] = '0'; $cond['_logic'] = 'or';
复合查询相当于封装了一个新的查询条件,然后并入原来的查询条件之中,所以可以完成比较复杂的查询条件组装。 例如:

$where['name']  = array('like', '%thinkphp%');
$where['title']  = array('like','%thinkphp%');
$where['_logic'] = 'or';
$map['_complex'] = $where;
$map['id']  = array('gt',1);

SQL:

( id > 1) AND ( ( name like '%thinkphp%') OR ( title like '%thinkphp%') )

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 50个常用的sql语句Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname...
    哈哈海阅读 1,379评论 0赞 7
  • 什么是SQL数据库: SQL是Structured Query Language(结构化查询语言)的缩写。SQL是...
    西贝巴巴阅读 2,063评论 0赞 10
  • 经济学无处不在。大到国家经济形势运转,小到黎民百姓的日常生活,普通人天天琢磨怎么省钱、怎么多赚钱,这些都是经济学在...
    无名作家阅读 684评论 0赞 0
  • 《战狼2》一片盛赞,票房高升!看到各种报道以及朋友圈的好评,晚上带老婆在小区的电影院看了这部电影。我不是一个电影迷...
    曹熙荣阅读 1,001评论 1赞 3
  • 住院六天,抽血九次,X胸片,验尿,验便… 直到今天第六天才得出女儿是肺炎的结论。。。 人在病中才能体会到把健康和生...
    高小花0218阅读 265评论 0赞 0

友情链接更多精彩内容