thinkphp 5中的混合查询

Posted 北往星辰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 5中的混合查询相关的知识,希望对你有一定的参考价值。

1.手册样例thinkphp 5.0
Db::table(‘think_user‘) ->where(‘name‘,[‘like‘,‘thinkphp%‘],[‘like‘,‘%thinkphp‘]) ->where(function($query){ $query->where(‘id‘,[‘<‘,10],[‘>‘,100],‘or‘); }) ->select();
相当于sql语句:
SELECT * FROM `think_user` WHERE ( `name` LIKE ‘thinkphp%‘ AND `name` LIKE ‘%thinkphp‘ ) AND ( `id` < 10 or `id` > 100 )
2.手册样例 thinkphp 5.1
Db::table(‘think_user‘)
    ->where(‘name‘, [‘like‘, ‘thinkphp%‘], [‘like‘, ‘%thinkphp‘])
    ->where(function ($query) {
        $query->where(‘id‘, [‘<‘, 10], [‘>‘, 100], ‘or‘);
    })
    ->select();
相当于sql语句:
SELECT * FROM `think_user` WHERE ( `name` LIKE ‘thinkphp%‘ AND `name` LIKE ‘%thinkphp‘ ) AND ( `id` < 10 or `id` > 100 )
3.function($query)传参数用use()
样例:
Db::table(‘think_user‘)
->where($where)
->where(function($query) use($group_id){
$query->where(Db::raw("group_id is null or group_id = ‘$group_id‘")); //Db::raw()可以直接写sql语句查询
})
->select();
Db::table(‘think_user‘)

以上是关于thinkphp 5中的混合查询的主要内容,如果未能解决你的问题,请参考以下文章

PHP-路由(Thinkphp 5)

PHP-路由(Thinkphp 5)

thinkphp5原生查询时,查询结果怎么分页,具体代码应该怎么写?

thinkphp 5 及一下或php项目里实现模糊查询

thinkphp3.1 多表联合查询代码

thinkphp中的exp查询