返回
基础
分类

二、表达式查询方式,就是当数据表中的查询字段为字符串时

日期: 2020-02-15 23:17 浏览次数 : 112

本文实例总结了thinkPHP查询方式。分享给大家供大家参考,具体如下:

 

一、普通查询方式

一、普通查询方式

  1. 使用字符串查询;

         a、字符串

$m->where(' id=1 and name="roge" ')->find();

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

这种方法存在一个缺点,就是当数据表中的查询字段为字符串时,需要在字段值中加入引号。

         b、数组

  1. 使用数组的方式(推荐使用)

    $data['name']="adfa"; $data['id']=3; $data['_logic']="or"; //字段之间的逻辑关系,默认为and的关系 $m->where($data)->find();

                   $data['sex']=0;

二、表达式查询

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

EQ  等于;
NEQ 不等于;
GT  大于;
EGT 大于等于;
LT 小于;
ELT 小于等于;
LIKE  模糊查询;

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

$data['id']=array('gt',6);
$data['name']=array('like','%as%'); //notlike
//$data['name']=array('like',array('%as%','%ts'),'and'); 默认为or关系,如果用and需要明确指定
$m->where($data)->select();
//其他查询 between, not between (之间有空格),in,not between,

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

三、区间查询

                   $data['sex']=0;

$data['id']=array(array('gt',5),array('lt',10)); //默认生成的是and的关系
//$data['id']=array(array('lt',5),array('gt',10),'or')
$data['name']=array(array('like','%d%'),array('like','%e%'),'gege','or');
$m->where($data)->select();

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

四、统计查询

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

count,max, min, avg, sum

二、表达式查询方式

$m->max('id')

                   $data['id']=array('lt',6);

五、SQL直接查询

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

$m=M();
$result=$m->query("select * from think_user where id>1")
//query主要用于对数据进行读取
$result=$m->execute("insert into think_user(`name`) values ('dfd') ");
//execute用于对数据进行写入

                   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* 用于命名范围 字符串、数组