- public function whereTest(){
- //原生sql语句:select id ,name from bro_user where id = 1 or name = "zhangsan";
- //推荐使用
- $data['id']=['=',1];
- $data['username']=['adm%'];
- Db::name('user')->where($data)->select();
- //官方文档基础写法 //使用where进行AND查询
- $result = Db::name("user")
- ->where('id','=',1) //where(字段名称,表达式,查询条件)
- ->where('username','adm%') //如果where()中第二个条件省略则默认字段名称等于查询条件
- ->select();
- dump($result);
- }
- public function orTest(){
- //原生语句:select id ,name from bro_user where id = 1 or name = "zhangsan";
- //使用whereOr进行or查询
- $result = Db::name('user')
- ->where('id','>',1)
- ->whereOr('status','normal')
- ->select();
- dump($result);
- }
- public function whereOrTest(){
- //混合查询
- //原生sql语句:select * from bro_user where(id=1 or id=2) or (username like %admin or username like admin%)
- $result = Db::name('user')->where(function ($query){
- $query->where('id',1)->whereOr('id',2);
- })->whereOr(function ($query){
- $query->where('username','like','%admin')->whereOr('username','like','admin%');
- })->select();
- dump($result);
- }
红色为需要记忆的,并且在某些特定条件下不能使用= <>一些符号
其中特别需要注意的是
NULL字段
![]()
字段设计时默认为null,且没有进行赋值 ![]()
字符串null不能使用isnull进行查询 ![]()
默认Null不能使用age=null查询
言简意赅:我们通常在项目中见到的这种($query->where('username','like','%admin')->whereOr('username','like','admin%');)形式的都是链式操作,明显的标志是【->】
$result = Db::name('demo')->where('age','=',null)->select();
需要注意的点:
有些方法是可以一直进行链式操作的例如【where,whereOr】等等
但是有些方法只能进行链接一次例如【table,select,limit】等等