为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

4 回答

$sql = $db->where([

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

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

       ])->whereOr([

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

       ])->buildSql();

       

       dump($sql);


0 回复 有任何疑惑可以回复我~

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

望采纳,谢谢

1 回复 有任何疑惑可以回复我~

$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手册 高级查询中的混合查询


1 回复 有任何疑惑可以回复我~

单个条件:

    ->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' ”


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信