gpt4 book ai didi

tp5.1 框架查询表达式用法详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章tp5.1 框架查询表达式用法详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了tp5.1 框架查询表达式用法。分享给大家供大家参考,具体如下:

查询表达式

  。

查询表达式支持大部分的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:

?
1
2
where( '字段名' , '表达式' , '查询条件' );
whereOr( '字段名' , '表达式' , '查询条件' );

5.1还支持新的查询方法 。

?
1
2
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

表达式查询的用法示例如下:

等于(=)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '=' ,100)->select();

和下面的查询等效 。

?
1
Db::name( 'user' )->where( 'id' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` = 100

不等于(<>)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '<>' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` <> 100

大于(>)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '>' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` > 100

大于等于(>=)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '>=' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` >= 100

小于(<)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '<' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` < 100

小于等于(<=)

  。

例如:

?
1
Db::name( 'user' )->where( 'id' , '<=' ,100)->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE `id` <= 100

[NOT] LIKE: 同sql的LIKE

  。

例如:

?
1
Db::name( 'user' )->where( 'name' , 'like' , 'thinkphp%' )->select();

最终生成的SQL语句是:

?
1
SELECT * FROM `think_user` WHERE ` name ` LIKE 'thinkphp%'

like查询支持使用数组 。

?
1
Db::name( 'user' )->where( 'name' , 'like' ,[ '%think' , 'php%' ], 'OR' )->select();

实际生成的SQL语句为:

?
1
2
SELECT * FROM `think_user`
WHERE (` name ` LIKE '%think' OR ` name ` LIKE 'php%' )

为了更加方便,应该直接使用whereLike方法 。

?
1
2
Db::name( 'user' )->whereLike( 'name' , 'thinkphp%' )->select();
Db::name( 'user' )->whereNotLike( 'name' , 'thinkphp%' )->select();

[NOT] BETWEEN :同sql的[not] between

  。

查询条件支持字符串或者数组,例如:

?
1
Db::name( 'user' )->where( 'id' , 'between' , '1,8' )->select();

和下面的等效:

?
1
Db::name( 'user' )->where( 'id' , 'between' ,[1,8])->select();

最终生成的SQL语句都是:

?
1
SELECT * FROM `think_user` WHERE `id` BETWEEN 1 AND 8

最快捷的查询方法是:

?
1
2
Db::name( 'user' )->whereBetween( 'id' , '1,8' )->select();
Db::name( 'user' )->whereNotBetween( 'id' , '1,8' )->select();

[NOT] IN: 同sql的[not] in

  。

查询条件支持字符串或者数组,例如:

?
1
Db::name( 'user' )->where( 'id' , 'in' , '1,5,8' )->select();

和下面的等效:

?
1
Db::name( 'user' )->where( 'id' , 'in' ,[1,5,8])->select();

最终的SQL语句为:

?
1
SELECT * FROM `think_user` WHERE `id` IN (1,5,8)

最快捷的查询方法是:

?
1
2
Db::name( 'user' )->whereIn( 'id' , '1,5,8' )->select();
Db::name( 'user' )->whereNotIn( 'id' , '1,5,8' )->select();

  。

[NOT] IN查询支持使用闭包方式 。

[NOT] NULL :

  。

查询字段是否(不)是Null,例如:

?
1
2
3
4
Db::name( 'user' )->where( 'name' , null)
->where( 'email' , 'null' )
->where( 'name' , 'not null' )
->select();

实际生成的SQL语句为:

?
1
2
3
4
SELECT * FROM `think_user`
WHERE ` name ` IS NULL
AND `email` IS NULL
AND ` name ` IS NOT NULL

如果你需要查询一个字段的值为字符串null或者not null,应该使用:

?
1
2
3
Db::name( 'user' )->where( 'title' , '=' , 'null' )
->where( 'name' , '=' , 'not null' )
->select();

推荐的方式是使用whereNull和whereNotNull方法查询.

?
1
2
3
4
Db::name( 'user' )->whereNull( 'name' )
->whereNull( 'email' )
->whereNotNull( 'name' )
->select();

EXP:表达式

  。

支持更复杂的查询情况 例如:

?
1
Db::name( 'user' )->where( 'id' , 'in' , '1,3,8' )->select();

可以改成:

?
1
Db::name( 'user' )->where( 'id' , 'exp' , ' IN (1,3,8) ' )->select();

exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称.

动态查询

  。

对于上面的查询表达式,可以使用动态查询方法进行简化,例如:

?
1
Db::name( 'user' )->where( 'id' , '>=' ,100)->select();

可以简化为:

?
1
Db::name( 'user' )->whereId( '>=' ,100)->select();

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助.

原文链接:https://blog.csdn.net/qq_42176520/article/details/88692359 。

最后此篇关于tp5.1 框架查询表达式用法详解的文章就讲到这里了,如果你想了解更多关于tp5.1 框架查询表达式用法详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com