Thinkphp的五种查询方式

一。普通查询方式

1.字符串查询
例如:查询姓名为“程欢”并且 年龄为“23”的用户的信息
         $arr=$m->where("name='程欢' and age=23")->find();  // find()返回一条,使用select()能够返回多条数据
        //  $arr=$m->where("name='程欢' and age=23")->select();  
2.数组查询
       或者
         $data['age']=23; 
         $data['name']='程欢';                              //find()返回一条,使用select()能够返回多条数据
         $arr= $m->where($data)->find();    //where里面存放的数组($data) 默认的关系是and 的关系
  //  $arr= $m->where($data)->   select()  ;  
 var_dump($arr);
如果想使 用or的关系         查询姓名为“程欢"或者 年龄为“23”的用户的信息
                 $data['age']=23;
 $data['name']='程欢';
 $data['_logic']='or';
$arr= $m->where($data)->find();   //find()返回一条,使用select()能够返回多条数据
                //$arr= $m->where($data)-> select() ;
        var_dump($arr);

二。表达式查询方式
GT--大于    LT---小于    EQ---等于   EGT---大于等于     ELT----小于等于     NEQ---不等于  //不区分大小写
LIKE---模糊查询      ONTLIKE---查询不匹配的
1.查询id 大于6的数有人员信息           
 $data['id']=array( 'GT',6);    
$arr= $m->where($data)->select();
          var_dump($arr);
2. 查询id 小于6的数有人员信息    
 $data['id']=array( 'LT',6);
$arr= $m->where($data)->select();
         var_dump($arr);
4.查询id 大于等 于6的数有人员信息  
 $data['id']=array( 'EGT',6);
$arr= $m->where($data)->select();
          var_dump($arr);
5.查询id 小于 等于6的数有人员信息  
 $data['id']=array( 'ELT',6);
$arr= $m->where($data)->select();
          var_dump($arr);
6.查询id 不等于 6 的数有人员信息  
$data['id']=array( 'NEQ',6);
$arr= $m->where($data)->select();
          var_dump($arr);
7 .模糊查询  LIKE关键字
     查询姓名中 包含”程欢“的人员信息
      $data['name']=array( 'LIKE','%程欢%');
   $arr= $m->where($data)->select();
      var_dump($arr);

8 .查询姓名中 不包含”程欢“的人员信息
      $data['name']=array( 'NOTLIKE','%程欢%');    // N OTLIKE中间不能有空格
      $arr= $m->where($data)->select();
      var_dump($arr);

9.多条件模糊匹配
      查询名字中包含”程欢“ 或者名字中包含”王“的人员信息        //默认为or的关系
    $data['name']=array( 'LIKE',array('%程欢%','%王%'));
    $arr= $m->where($data)->select();
    var_dump($arr);

  查询名字中包含”程欢“ 并且名字中包含”王“的人员信息
   $data['name']=array( 'LIKE',array('%程欢%','%王%'),'and');
    $arr= $m->where($data)->select();
    var_dump($arr);

三,区间查询(类似in    between ...and)
 查询id 在5和7之间的人员信息
$data['id']=array ('between',array(5,7));
$arr= $m->where($data)->select();
 var_dump($arr); 


查询id 不在5和7 之间的人员信息

      $data['id']=array( 'not between',array(5,7));    //not between之间必须有空格            
 $arr= $m->where($data)->select();
var_dump($arr);


查询id 为6,7,10 的用户信息
 $data['id']= array('in',array(6,70,10));               
 $arr= $m->where($data)->select();
var_dump($arr);


查询id 不为6,7,10的用户信息
$data['id']=array ('not in',array(6,70,10));    //not in之间必须有空格  

查询id 大于4小于10的人员信息
$data['id']=array(array('GT',4),array('LT',10));    //默认使用and方式,

查询id 大于4或者(or)小于10的人员信息
$data['id']=array(array('GT',4),array('LT',10),'or'); 

查询 id大于4或者小于10名字中包含"程"或者"王"
$data['id']=array(array('GT',4),array('LT',10),'or'); 
$data['name']=array(array('like','程'),array('like','王'),'or')
// SQL语句SELECT * FROM `tp_user` WHERE ( (`id` > 4) OR (`id` < 10) ) AND ( (`name` LIKE '%程%') OR (`name` LIKE '%王%') )
四。统计查询
1.count   ---   获取个数
2.max     ----  获取最大数
3.min     ----    获取最小数
4.avg    ----     获取平均数
5.sum     ----    获取总和
1.获取用户的总数
$m=M("User");  //实例化一个对象
$c=$m->count()    //调用count()方法
echo $c;

2.获取用户名为"程欢"的用户数量
$c=$m->where("name='程欢'")->count();
echo $c;
或者
$data['name']='程欢';
$c=$m->where($data)->count();

3.获取表中ID最大的值
$c=$m->max('id');
4 .获取表中ID最小的值
$c=$m->min('id');
echo $c;


五。SQL直接查询
1.使用query     ----主要处理读取数据的
$m=M( );             //声明一个空的对象
$result= $m->query("select * from tp_user where id>5");      //执行成功的话返回一个结果集(数组) ,失败返回false
var_dump($result);

2.使用execute   --用于更新和输入操作
$m=M( );             //声明一个空的对象
$result= $m->execute("insert into tp_user(name) values('chenghuan')");      //执行成功的话返回影响的行数, 失败返回false
var_dump($result);

如果在UserAction.class.php中新建一个search()方法,当最后使用$this->disaplay()方法调用模板的时候如果不定义的话就
会自动查找tpl下User下的serach模板,如果改为$this->display('index');则会查找 tpl下User下的index模板


模糊查询:查询姓名为(表单提交)或者  年龄为(表单提交)
$where['name']=array('like',"%{$_POST['username']}%");
  $where['age']=array('EQ',$_POST['age']);

 $m=M("User");
 //$where['_logic']='or';     //如果没有则为  查询姓名为(表单提交)并且  年龄为(表单提交)  
 $arr=$m->where($where)->select();
 $this->assign('data',$arr);
 $this->display('index');






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值