查询表达式

本节课我们要学习查询中的几种查询方式:比较查询、区间查询、其它查询等

 

一.比较查询

1.在查询数据进行筛选时,我们采用 where()方法
    public function show(){
        //where 过滤函数 第二个参数默认是=,不写就是等于
        $data=Db::table('user')->where('bid',3)->select();
        //下面的代码等价于上面的代码
        $data1=Db::table('user')->where('bid','=',3)->select();
        return json($data);
    }
2.where(字段名,查询条件),where(字段名,表达式,查询条件);
3.其中,表达式不区分大小写,包括了比较、区间和时间三种类型的查询;
4.使用<>、>、<、>=、<=可以筛选出各种符合比较值的数据列表;
    public function show(){

        //查找user表中,bid大于3的
        $data=Db::table('user')->where('bid','>',3)->select();
        return json($data);
    }

二.区间查询

1.使用 like 表达式进行模糊查询;
    public function show(){

        //模糊查询,第二个参数如果为关键字like  则为模糊查询,查找bname 包含伟的
        $data=Db::table('user')->where('bname','like','%伟')->select();
        return Db::getlastsql();
        return json($data);
    }
2.like 表达式还可以支持数组传递进行模糊查询;

 

    public function show(){

        //where 还可以传递数组,并且第四个参数 为查询条件,如果不指定为and
        //sql语句SELECT * FROM `user` WHERE (`bname` LIKE '%伟' OR `bname` LIKE '%玥')
        $data=Db::table('user')->where('bname','like',['%伟','%玥'],'or')->select();
        return Db::getlastsql();
        return json($data);
    }
3.like 表达式具有两个快捷方式 whereLike()和 whereNoLike();
    public function show(){

        //wherelike函数 就相当于直接在where函数中,查询的条件为like
        $data=Db::table('user')->whereLike('bname','%伟')->select();
        return Db::getlastsql();
        //SELECT * FROM `user` WHERE `bname` LIKE '%伟'
        return json($data);
    }

whereNotLike()函数就是不包含%伟的,这里就不演示了

4.between 表达式具有两个快捷方式 whereBetween()和 whereNotBetween();
    public function show(){
        //使用where函数 表达式between
        // $data=Db::table('user')->where('bid','between','1,5')->select();
        $data=Db::table('user')->where('bid','between',[1,5])->select();
        //使用wherebetween函数
        $data=Db::table('user')->whereBetween('bid',[1,3])->select();
        //使用whereNotBetween函数
        $data=Db::table('user')->whereNotBetween('bid',[1,3])->select();
        return Db::getlastsql();
        //SELECT * FROM `user` WHERE `bname` LIKE '%伟'
        return json($data);
    }

 5.in 表达式具有两个快捷方式 whereIn()和 whereNotIn();

 

    public function show(){
       //query函数原生的sql查询语句
        $data=Db::table('user')->where('bid','in',"1,2,3")->select();
        // return Db::getlastsql();
        //SELECT * FROM `user` WHERE `bname` LIKE '%伟'
        return json($data);
    }
Db::name('user')->whereIn('id','19,21,29')->select();
Db::name('user')->whereNotIn('id','19,21,29')->select();

6.query()函数,参数为原生的查询sql语句

    public function show(){
       //query函数原生的sql查询语句
        $data=Db::query("select * from user where bid=3 or bid=4");
        // return Db::getlastsql();
        //SELECT * FROM `user` WHERE `bname` LIKE '%伟'
        return json($data);
    }

execute函数用于更新和写入数据的sql操作,如果数据非法或者查询错误则返回false,否则返回影响的记录数。

使用示例:

Db::execute("update think_user set name='thinkphp' where status=1");

 

 

 

7.null 表达式具有两个快捷方式 whereNull()和 whereNotNull();
Db::name('user')->where('uid','null')->select();
 Db::name('user')->where('uid','not null')->select(); Db::name('user')->whereNull('uid')->select();
 Db::name('user')->whereNotNull('uid')->select();

三.其它查询

1. 使用 exp 可以自定义字段后的 SQL 语句;
Db::name('user')->where('id','exp','IN (19,21,25)')->select();
Db::name('user')->whereExp('id','IN (19,21,25)')->select();

 

 

 

 

 

 

 

posted @ 2021-09-06 10:58  WhiteSpace  阅读(181)  评论(0编辑  收藏  举报