• ThinkPHP 3.1.2 查询方式 -4


    一、普通查询方式

             a、字符串

                       $arr=$m->where("sex=0 and username='gege'")->find();

             b、数组

                       $data['sex']=0;

                       $data['username']='gege';

                       $arr=$m->where($data)->find();

                       注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值

                       $data['sex']=0;

                       $data['username']='gege';

                       $data['_logic']='or';

    二、表达式查询方式

                       $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();

                       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');

    四、统计查询

                       count //获取个数

                       max   //获取最大数

                       min   //获取最小数

                       avg   //获取平均数

                       sum   //获取总和

    五、SQL直接查询

             a、query 主要数处理读取数据的

                       成功返回数据的结果集

                       失败返回boolean false

                       $m=M();

                       $result=$m->query("select *  from t_user where id >50");

                       var_dump($result);

             b、execute 用于更新个写入操作

                       成功返回影响行数

                       失败返回boolean false

                       $m=M();

                       $result=$m->execute("insert into t_user(`username`) values('ztz3')");

                       var_dump($result);

    'URL_PATHINFO_DEPR' => '-' //配置Pathinfo模式访问的分割符
    'TMPL_L_DELIM'=>'<{'; //配置左定界符
    'TMPL_R_DELIM'=>'}>'; //配置右定界符
    'DB_TYPE'=>'mysql', //设置数据可类型
    'DB_HOST'=>'localhost', //设置数据库主机
    'DB_NAME'=>'thinkphp', //设置数据库名
    'DB_USER'=>'root', //设置用户名
    'DB_PWD'=>'', //设置密码
    'DB_PORT'=>'3306', //设置端口号
    'DB_PREFIX'=>'tp_', //设置表前缀
    'DB_DSN'=>'mysql://root:@localhost:3306/thinkphp', //DSN方式配置数据库信息
    'SHOW_PAGE_TRACE'=>true,//开启页面Trace
    'DB_LIKE_FIELDS'=>'title|content' //查询语句中条件自动变为模糊查询%%

    六、常用连贯操作

             1.where

                       帮助我们设置查询条件

             2.order    

                       对结果进行排序

                       $arr=$m->order('id desc')->select();

                       $arr=$m->order(array('id'=>'desc','sex'=>'asc'))->select();

             3.limit      

                       限制结果

                       limit(2,5)

                       limit('2,5')

                       limit(10)//limit(0,10)

             4.field      

                       设置查询字段

                       field('username as name,id')

                       field(array('username'=>'name','id')

                       field('id',true) //获取除了id以外的所有字段

             5.table    

             6.group   

             7.having

    七、补充 

                                alias 用于给当前数据表定义别名 字符串

                                page 用于查询分页(内部会转换成limit) 字符串和数字

                                join* 用于对查询的join支持 字符串和数组

                                union* 用于对查询的union支持 字符串、数组和对象

                                distinct 用于查询的distinct支持 布尔值

                                lock 用于数据库的锁机制 布尔值

                                cache 用于查询缓存 支持多个参数(以后在缓存部分再详细描述)

                                relation 用于关联查询(需要关联模型扩展支持) 字符串

                                validate 用于数据自动验证 数组

                                auto 用于数据自动完成 数组

                                filter 用于数据过滤 字符串

                                scope* 用于命名范围 字符串、数组

  • 相关阅读:
    新装的idea需要设置的项目
    bug活动文章地址
    环形链表的问题
    IntelliJ配置jenkins服务的Crumb Data
    算法问题求数组排序后最大相邻数差
    jdk11安装以及无jre解决方法
    算法问题大数相加
    java中级技术点
    算法实现 出入栈,寻找最小值
    算法问题2的整数次幂
  • 原文地址:https://www.cnblogs.com/jasonlny/p/3322124.html
Copyright © 2020-2023  润新知