sql server 多条记录数据合并为一条_tp框架查询数据

5442dcbfc9138154eaed14d7ff4a6fb2.png

相信各位都是各界大佬,就不介绍mvc思想了

查询多条数据

获取多个数据(推荐静态调用select方法)

①静态调用all方法或者select

// 获取所有的数据all和select
$list = User::all();
// 根据主键获取多个数据all和select  where id in (1,2,3)
$list = User::all('1,2,3');
$list = User::all([1,2,3]);
// 或者使用数组查询(只能用all不能用select) where status = 1
$list = User::all(['status'=>1]);

②动态调用all方法或者select方法

$user = new User();
// 查询所有数据all和select
$list = $user->select();
// 根据主键查询多条数据all和select
$list = $user->select('1,2,3');
$list = $user->select([1,2,3]);
// 或者使用数据查询(只能用all不能select)
$list=$user->all(['status'=>1]);

注意:all方法或者select方法返回的是一个包含模型对象的二维数组获取空数组

select方法和All方法的应用:

375acb9e9ade2dc5f1ac6a94141a45e1.png

185deb4783913faf427d426516c4f8b0.png
效果

4eb244b3a918492679bde3e172b3640e.png
整个返回结果数据结构

获取一个数据(推荐静态调用find方法)

①静态调用get方法获取find方法

// 取出主键为1的数据 where id = 1
$user = appadminmodelUser::get(1);
$user = appadminmodelUser::find(1);

// 使用数组查询(非主键字段),只能用get不能用find  where name = 'thinkphp'
$user=user::get(['name' => 'thinkphp']);

// 取出第一条数据,只能用find不能用get
$user = User::find();

②动态调用get方法或者find方法

$user = new User();

// 取出主键为1的数据
$info = $user->find(1);
$info = $user->get(1);

// 使用数组查询(非主键字段),只能使用get不能用find
$Info = $user->get(['name' => 'thinkphp']);

// 取出第一条数据,只能使用find不能使用get
$info = $user->find();

注意:get或者find方法返回的是当前模型的对象实例或者null

返回的模型对象,可以直接当做数组使用,也可以调用toArray() 直接转化为数组。

其他查询方法(where方法)

1、where方法(查询语法)

where('字段名','表达式','查询条件');
whereor('字段名','表达式','查询条件');

表达式 含义

EQ、= 等于(=)

NEQ、<> 不等于(<>)

GT、> 大于(>)

EGT、>= 大于等于(>=)

LT、< 小于(<)

ELT、<= 小于等于(<=)

LIKE 模糊查询

[NOT] BETWEEN (不在)区间查询

[NOT] IN (不在)IN 查询

[NOT] NULL 查询字段是否(不)是NULL

[NOT] EXISTS EXISTS查询

EXP 表达式查询,支持SQL语法

> time 时间比较

< time 时间比较

between time 时间比较

notbetween time 时间比较


引用示例

$info = User::where('id','=','1')->find();

$info = User::where('id','1')->find();

$info = User::where('name','like','%thinkphp%')->select();

注意:使用了where方法后,查询数据可以使用find方法和select方法,不能使用get方法和all方法。(原因:where方法返回的是Query对象,不是模型对象)

2、连贯操作(链式操作)

原理:中间调用的方法,返回值是对象,可以继续调用对象的其他方法

一条SQL语句的组成可以很复杂,里边有where、order by、group by、限制查询的字段、limit、having限制条件等等,这些复杂的条件在tp框架中都有封装

注:TP框架中,中间的方法没有顺序要求,当时用于获取最终结果的find和select等方法,必须在最后。

常用链式操作方法

$model = new Address();

$model->field('id,name')->select(); //指定要查询的字段,原生sql中select后面的字段

$model->order('id desc,time desc')->select(); //相当于原生sql中的order by

$model->limit(3)->select(); //相当于原生sql中的limit条件

$model->limit(0,3)->select(); 

$model->limit('0,3')->select(); 

$model->group('cate_id')->select();  //相当于原生sql中的group by

$model->having('id>3')->select();  //相当于原生sql中的having条件

$model->alias('a')->join('think_user_type t','a.id=t.user_id', 'left')->select(); //alias方法设置别名,join方法连表查询

//Address::alias('a')->join('tpshop_user u','a.user_id = u.id', 'left')->select();

3、统计查询(聚合查询)

方法 说明

count 统计数量,参数是要统计的字段名(可选)

max 获取最大值,参数是要统计的字段名(必须)

min 获取最小值,参数是要统计的字段名(必须)

avg 获取平均值,参数是要统计的字段名(必须)

sum 获取总分,参数是要统计的字段名(必须)

// 统计查询
$count = appadminmodelGoods::where('id','>',32)->count();
dump($count);
$max = appadminmodelGoods::where('id','>',32)->max('id');
dump($max);

4、数据字段查询

①查询一条记录的一个字段

Goods::where(‘id’, 2)->value(‘goods_name’);

②查询多条记录的一个字段的值,返回一个一维索引数组

Goods::where(‘id’, ‘GT’, 2)->column(‘goods_name’);

③查询多条记录的一个字段的值,以id字段值作为数组索引

5、trace调试

Trace调试功能就是ThinkPHP提供给开发人员的一个用于开发调试的辅助工具。可以实时显示当前页面的操作的请求信息、运行情况、SQL执行、错误提示等

开启trace调试:

修改application/config.php , 配置以下参数:

'app_trace' => true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值