tp5框架中查询表达式如何使用?
Admin 2021-05-18 群英技术资讯 841 次浏览
这篇文章给大家分享的是关于tp5框架中查询表达式的用法,小编认为是比较实用的,因此分享给大家参考学习,文本示例具有一定的借鉴价值,感兴趣的朋友可以看看。
查询表达式支持大部分的SQL查询语法,也是ThinkPHP
查询语言的精髓,查询表达式的使用格式:
where('字段名','表达式','查询条件'); whereOr('字段名','表达式','查询条件');
5.1
还支持新的查询方法
whereField('表达式','查询条件'); whereOrField('表达式','查询条件');
Field
使用字段的驼峰命名方式。
表达式不分大小写,支持的查询表达式有下面几种:
表达式 | 含义 | 快捷查询方法 |
---|---|---|
= | 等于 | |
<> | 不等于 | |
> | 大于 | |
>= | 大于等于 | |
< | 小于 | |
<= | 小于等于 | |
[NOT] LIKE | 模糊查询 | whereLike/whereNotLike |
[NOT] BETWEEN | (不在)区间查询 | whereBetween/whereNotBetween |
[NOT] IN | (不在)IN 查询 | whereIn/whereNotIn |
[NOT] NULL | 查询字段是否(不)是NULL | whereNull/whereNotNull |
[NOT] EXISTS | EXISTS查询 | whereExists/whereNotExists |
[NOT] REGEXP | 正则(不)匹配查询(仅支持Mysql) | |
[NOT] BETWEEM TIME | 时间区间比较 | whereBetweenTime |
> TIME | 大于某个时间 | whereTime |
< TIME | 小于某个时间 | whereTime |
>= TIME | 大于等于某个时间 | whereTime |
<= TIME | 小于等于某个时间 | whereTime |
EXP | 表达式查询,支持SQL语法 | whereExp |
表达式查询的用法示例如下:
例如:
Db::name('user')->where('id','=',100)->select();
和下面的查询等效
Db::name('user')->where('id',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` = 100
例如:
Db::name('user')->where('id','<>',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` <> 100
例如:
Db::name('user')->where('id','>',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` > 100
例如:
Db::name('user')->where('id','>=',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` >= 100
例如:
Db::name('user')->where('id','<',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` < 100
例如:
Db::name('user')->where('id','<=',100)->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `id` <= 100
例如:
Db::name('user')->where('name','like','thinkphp%')->select();
最终生成的SQL语句是:
SELECT * FROM `think_user` WHERE `name` LIKE 'thinkphp%'
like
查询支持使用数组
Db::name('user')->where('name','like',['%think','php%'],'OR')->select();
实际生成的SQL语句为:
SELECT * FROM `think_user` WHERE (`name` LIKE '%think' OR `name` LIKE 'php%')
为了更加方便,应该直接使用whereLike
方法
Db::name('user')->whereLike('name','thinkphp%')->select(); Db::name('user')->whereNotLike('name','thinkphp%')->select();
查询条件支持字符串或者数组,例如:
Db::name('user')->where('id','between','1,8')->select();
和下面的等效:
Db::name('user')->where('id','between',[1,8])->select();
最终生成的SQL语句都是:
SELECT * FROM `think_user` WHERE `id` BETWEEN 1 AND 8
最快捷的查询方法是:
Db::name('user')->whereBetween('id','1,8')->select(); Db::name('user')->whereNotBetween('id','1,8')->select();
查询条件支持字符串或者数组,例如:
Db::name('user')->where('id','in','1,5,8')->select();
和下面的等效:
Db::name('user')->where('id','in',[1,5,8])->select();
最终的SQL语句为:
SELECT * FROM `think_user` WHERE `id` IN (1,5,8)
最快捷的查询方法是:
Db::name('user')->whereIn('id','1,5,8')->select(); Db::name('user')->whereNotIn('id','1,5,8')->select();
[NOT] IN
查询支持使用闭包方式
查询字段是否(不)是Null
,例如:
Db::name('user')->where('name', null) ->where('email','null') ->where('name','not null') ->select();
实际生成的SQL语句为:
SELECT * FROM `think_user` WHERE `name` IS NULL AND `email` IS NULL AND `name` IS NOT NULL
如果你需要查询一个字段的值为字符串null
或者not null
,应该使用:
Db::name('user')->where('title','=', 'null') ->where('name','=', 'not null') ->select();
推荐的方式是使用whereNull
和whereNotNull
方法查询。
Db::name('user')->whereNull('name') ->whereNull('email') ->whereNotNull('name') ->select();
支持更复杂的查询情况 例如:
Db::name('user')->where('id','in','1,3,8')->select();
可以改成:
Db::name('user')->where('id','exp',' IN (1,3,8) ')->select();
exp
查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。
对于上面的查询表达式,可以使用动态查询方法进行简化,例如:
Db::name('user')->where('id','>=',100)->select();
可以简化为:
Db::name('user')->whereId('>=',100)->select();
关于tp5查询表达式的用法就介绍到这,需要的朋友可以参考上述示例,希望文本对大家学习和了解查询表达式的用法有帮助,更多查询表达式的用法技巧可以关注其他相关文章。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Laravel5.1 框架文件管理操作,结合实例形式分析了laravel5.1框架文件管理相关的配置、磁盘获取以及文件目录操作技巧,需要的朋友可以参考下
在本篇文章里小编给大家整理了关于php利用ZipArchive类实现文件压缩与解压实例代码内容,需要的朋友们学习下。
php-fpm是什么?php-fpm全名是PHP FastCGI进程管理器,是PHP的一个进程管理器。php下面的众多work进程皆有php-fpm进程管理器管理。
PHP中常见的header头定义有哪些?对PHP新手来说,对这个问题可能不是很清楚,这篇文章就给大家介绍一下,了解一些常用header头定义还是很有用处的,下面一起来看一下。
swoole关闭进程的方法:首先把代码里的守护进程改成0;然后通过命令“netstat -apn | grep 9503”查找这个端口号的pid;接着使用命令“kill -9 18669”杀死这个进程;最后重新开启监听程序即可。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008