thinkphp5中常用数据库查询语句介绍
发布时间 - 2020-04-27 00:00:00 点击率:次tp_data 数据表
value()
$name = Db::name('data')
-> where('id', 16)
-> value('name');
print_r($name);
// 获取 tp_data 数据表中 id = 16,name 字段的值,并打印
// 结果:1111
/** 原生sql语句
>Prepare SELECT `name` FROM `tp_data` WHERE `id` = ? LIMIT 1
>Execute SELECT `name` FROM `tp_data` WHERE `id` = 16 LIMIT 1
*/column()
获取一列满足条件的数据
$list = Db::name('data)
-> where('status', 1)
-> column('name');
print_r($list);
// 从 tp_data 数据表获取一列 status = 1 的 name 字段值
/** 结果:
Array(
[0] => thinkphp
[1] => thinkphp
[2] => thinkphp
[3] => thinkphp
[4] => 7777777777
[5] => thinkphp
[6] => thinkphp
[7] => thinkphp
[8] => thinkphp
)
*/获取一列满足条件的数据,并以id值为键名
$list = Db::name('data)
-> where('status', 1)
-> column('name', 'id');
print_r($list);
// 从 tp_data 数据表获取一列 status=1 的 name 字段值集合
/** 结果:
Array(
[3] => thinkphp
[4] => thinkphp
[5] => thinkphp
[6] => thinkphp
[7] => 7777777777
[8] => thinkphp
[9] => thinkphp
[10] => thinkphp
[11] => thinkphp
)
*/获取以id为键名的数据集
$list = Db::name('data')
-> where('status', 1)
-> column('*', 'id');
print_r($list);
// 从 tp_data 数据表获取一列 status=1 的数据集
/** 结果:
Array(
[3] => Array(
[id] => 3
[name] => thinkphp
[status] => 1
)
[4] => Array(
[id] => 4
[name] => thinkphp
[status] => 1
)
[5] => Array(
[id] => 5
[name] => thinkphp
[status] => 1
)
...
)
*/聚合查询
count
max
min
avg
sum
统计 data 表的数据
$count = Db::name('data')
-> where('status', 1)
-> count();
echo $count;
// 结果:9统计 data 表的最大 id
$max = Db::name('data')
-> where('status', 1)
-> max('id);
echo $max;
// 结果:11简单查询
$result = Db::name('data')
-> where("id > :id and name like :name",
[
'id' => 10,
'name' => "%php%"
])
-> select();
print_r($result);
/** 结果:
Array(
[0] => Array(
[id] => 11
[name] => thinkphp
[status] => 1
)
)
*/
/** 原生sql语句:
>Prepare SELECT * FROM `tp_data` WHERE (id > ? and name like ?)
>Execute SELECT * FROM `tp_data` WHERE (id > '10' and name like '%php%')
*/日期查询
日期类型int,时间戳格式
查询时间大于 2016-1-1 的数据
$result = Db::name('users')
-> whereTime('reg_time', '>', '2016-1-1')
-> select();
print_r($result);
/** 原生sql语句:
>Prepare SELECT * FROM `tp_users` WHERE `reg_time` > ?
>Execute SELECT * FROM `tp_users` WHERE `reg_time` > 1451577600
*/查询本周
$result = Db::name('users')
-> whereTime('reg_time', '>', 'this week')
-> select();
print_r($result);
// 从本周星期一开始查询最近两天添加的数据
$result = Db::name('users')
-> whereTime('reg_time', '>', '-2 days')
-> select();
print_r($result);查询创建时间
在 2016-1-1 ~ 2017-7-1 的数据
$result = Db::name('users')
-> whereTime('reg_time', 'between', ['2016-1-1', '2017-7-1'])
-> select();
print_r($result);
/** 原生sql语句:
>Prepare SELECT * FROM `tp_users` WHERE `reg_time` BETWEEN ? AND ?
>Execute SELECT * FROM `tp_users` WHERE `reg_time` BETWEEN 1451577600 AND 1483200000
*/查询今天的数据
昨天:yesterday
本周:week
上周:last week
$result = Db::name('users')
-> whereTime('reg_time', 'today')
-> select();
print_r($result);分块查询
Db::name('data')
-> where('status', '>', 0)
-> chunk(2, function($list) {
foreach($list as $data) {
//处理2条记录
}
});
/** 原生sql语句:
>Prepare SELECT * FROM `tp_data` WHERE `status` > ? ORDER BY `id` asc LIMIT 2
>Execute SELECT * FROM `tp_data` WHERE `status` > 0 ORDER BY `id` asc LIMIT 2
>Close stmt
>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2
>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 4 ORDER BY `id` asc LIMIT 2
>Close stmt
>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2
>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 6 ORDER BY `id` asc LIMIT 2
>Close stmt
...
>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2
>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 16 ORDER BY `id` asc LIMIT 2
>Close stmt
>Prepare SELECT * FROM `tp_data` WHERE `status` > ? AND `id` > ? ORDER BY `id` asc LIMIT 2
>Execute SELECT * FROM `tp_data` WHERE `status` > 0 AND `id` > 17 ORDER BY `id` asc LIMIT 2
>Close stmt
*/改进
$p = 0;
do {
$result = Db::name('data') -> limit($p, 2) -> select();
$p += 2;
//处理数据
} while(count($result) > 0);推荐教程:《TP5》
# 本周
# 键名
# 两天
# 并以
# 值为
# 上周
# 昨天
# column
# Array
# thinkphp
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Angular 表单中正确绑定输入值以确保提交与验证正常工作
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
如何在万网主机上快速搭建网站?
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
使用豆包 AI 辅助进行简单网页 HTML 结构设计
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
重庆市网站制作公司,重庆招聘网站哪个好?
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
如何用美橙互联一键搭建多站合一网站?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
javascript中对象的定义、使用以及对象和原型链操作小结
零基础网站服务器架设实战:轻量应用与域名解析配置指南
如何安全更换建站之星模板并保留数据?
Laravel如何自定义错误页面(404, 500)?(代码示例)
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
5种Android数据存储方式汇总
大同网页,大同瑞慈医院官网?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
Laravel如何处理表单验证?(Requests代码示例)
如何在新浪SAE免费搭建个人博客?
Laravel如何实现数据库事务?(DB Facade示例)
如何为不同团队 ID 动态生成多个非值班状态按钮
微信推文制作网站有哪些,怎么做微信推文,急?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
如何在宝塔面板创建新站点?
android nfc常用标签读取总结
Java类加载基本过程详细介绍
Android自定义控件实现温度旋转按钮效果
网站制作企业,网站的banner和导航栏是指什么?
Laravel storage目录权限问题_Laravel文件写入权限设置
如何在橙子建站中快速调整背景颜色?
三星网站视频制作教程下载,三星w23网页如何全屏?
网站图片在线制作软件,怎么在图片上做链接?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
详解Android——蓝牙技术 带你实现终端间数据传输
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何快速配置高效服务器建站软件?

