这篇文章将为大家详细讲解有关thinkphp5中常用数据库查询语句是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
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);
关于“thinkphp5中常用数据库查询语句是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。