thinkPHP 查询

getField()  查询指定字段的值
find()    查询一条数据
select()   查询多条数据
一、普通查询方式
    a、字符串
        $m->find($id);
        $arr=$m->where("sex=0 and username='gege'")->find();
        
    b、数组
        $data['sex']=0;
        $data['username']='gege';
        $arr=$m->where($data)->find();
            
        $arr = $m->where(array('sex'=>1,'name'=>'haha'))->select();

        注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值
        $data['sex']=0;
        $data['username']='gege';
        $data['_logic']='or';

        $arr = $m->where(array('sex'=>1,'name'=>'haha','_logic'=>'or'))->select();
二、表达式查询方式 (大小写都可以)
        $data['id']=array('lt',6);
        $arr=$m->where($data)->select();
        EQ 等于
        NEQ不等于
        GT 大于
        EGT大于等于
        LT 小于
        ELT小于等于
        LIKE 模糊查询
            $data['username']=array('like','%ge');
            $arr=$m->where($data)->select();

            $m->where(array('id'=>array('gt',2),'name'=>array('like','%郝%')))->select();
        NOTLIKE
            $data['username']=array('notlike','%ge%'); //notlike中间没有空格
                $arr=$m->where($data)->select();

            注意:如果一个字段要匹配多个通配符
            $data['username']=array('like',array('%ge%','%2%','%五%'),'and');//如果没有第三个值,默认关系是or关系
            $arr=$m->where($data)->select();


        BETWEEN
            $data['id']=array('between',array(5,7));
            $arr=$m->where($data)->select();
            //SELECT * FROM `tp_user` WHERE ( (`id` BETWEEN 5 AND 7 ) )
            $data['id']=array('not between',array(5,7));//注意,not 和 between中间一定要有空格
            $arr=$m->where($data)->select();

        IN            

    $data['id']=array('in',array(4,6,7));            

    $arr=$m->where($data)->select();
            //SELECT * FROM `tp_user` WHERE ( `id` IN (4,6,7) )

            $data['id']=array('not in',array(4,6,7));
            $arr=$m->where($data)->select();
            //SELECT * FROM `tp_user` WHERE ( `id` NOT IN (4,6,7) )

三、区间查询
        $data['id']=array(array('gt',4),array('lt',10));//默认关系是 and 的关系
        SELECT * FROM `tp_user` WHERE ( (`id` > 4) AND (`id` < 10) )

        $data['id']=array(array('gt',4),array('lt',10),'or') //关系就是or的关系

        $data['name']=array(array('like','%2%'),array('like','%五%'),'gege','or');  //不添or 就是and
        SELECT * FROM `tp_user` WHERE ( (`name` LIKE '%2%') OR (`name` LIKE '%五%') OR (`name` = 'gege') )
四、统计查询
        count //获取个数
            $num = $m->where($data)->count();
        max   //获取最大数
            $arr = $m->max('id');  //取最大的ID值
        min   //获取最小数
        avg   //获取平均数
        sum   //获取总和
五、SQL直接查询
    a、query 主要数处理读取数据的
        成功返回数据的结果集数组
        失败返回boolean false
        $m=M(); //空model对象 就可以查询
        $result=$m->query("select *  from tp_user where id >50");
        var_dump($result);
    b、execute 用于更新个写入操作
        成功返回影响行数
        失败返回boolean false
        $m=M();
        $result=$m->execute("insert into tp_user(`username`) values('ztz3')");
        var_dump($result);

posted @ 2014-08-21 10:34  笑笑别人  阅读(398)  评论(0编辑  收藏  举报