tp5中where方法如何构建分组条件?

来源:2-7 链式操作

ilovemooc

2017-09-25 20:38

tp5中where方法如何构建分组条件,
例如:
where sex="男" and (name like "李%" or age=18)
该如何构建?

写回答 关注

4回答

  • _神隐
    2019-07-28 15:43:48

    $sql = $db->where([

               'sex' => ['eq','男'],

               'name' => ['like','李%']

           ])->whereOr([

               'age' => ['eq',18]

           ])->buildSql();

           

           dump($sql);


  • 鸥耶
    2017-10-19 17:06:02

    最简单的方法,where("sex","EXP","='男' and (name like '李%' or age=18)")

    望采纳,谢谢

  • 慕神8376196
    2017-10-09 21:39:57

    $res = Db::table('fd_user')->where('sex','eq','男')

    ->where(function($query){

    $query->where('name','like','李%')

    ->whereOr('age','eq',18);

    })

    ->buildSql();


    dump($res);


    打印的结果是:

    string(91) "( SELECT * FROM `fd_user` WHERE  `sex` = '男'  AND (  `name` LIKE '李%' OR `age` = 18 ) )";


    参考网址:

    https://www.kancloud.cn/manual/thinkphp5/135184  tp5手册 高级查询中的混合查询


  • AIU薇
    2017-09-26 13:07:01

    单个条件:

        ->where('键名','条件',键值)

        如:->where('id','>',1)

        等同于Sql语句:“SELECT * FROM * WHERE 'id'>1”

    多个条件AND:

        ->where('键名','条件',键值)

        ->where('键名','条件',键值)

        如:->where('id','>',1)

               ->where('username','eq',imooc)

        等同于Sql语句:“SELECT * FROM * WHERE 'id'>1 AND 'username'='imooc' ”

    多个条件OR:

        ->where('键名','条件',键值)

        ->whereOr('键名','条件',键值)

        如:->where('id','>',1)

               ->whereOr('username','eq','imooc')

        等同于Sql语句:“SELECT * FROM * WHERE 'id'>1 OR 'username'='imooc' ”


快速入门ThinkPHP 5.0 --模型篇

Thinkphp5.0已发布多时,想了解thinkphp 5.0的新特性吗?老司机点准时出发

27110 学习 · 100 问题

查看课程

相似问题