Thinkphp6查询表达式

2023-05-11 15:57:08 浏览数 (3)

比较查询

查询表达式支持大部分常用的SQL语句,语法格式如下:

代码语言:javascript复制
where('字段名','查询表达式','查询条件');

在查询数据时,使用where()方法

代码语言:javascript复制
Db::name('user')->where('id',14)->find();
Db::name('user')->where('id,'=',14)->find();

可以使用<>><>=<=筛选出各种比较值的数据

区间查询

使用like表达式进行模糊查询

代码语言:javascript复制
Db::name('user')->where('email','like','zqx%')->find();

like表达式支持数组传递进行模糊查询

代码语言:javascript复制
Db::name('user')->where('email','like',['tl%','zqx%'],'or')->select();

like表达式可以使用whereLike()和whereNoLike() 使用whereLike()方法

代码语言:javascript复制
Db::name('user')->whereLike('email','zqx%')->find();

使用whereNotLike()方法

代码语言:javascript复制
Db::name('user')->whereNotLike('email','zqx%')->select();

between表达式可以用来进行区间查询

代码语言:javascript复制
Db::name('user')->where('price',70)->select();
Db::name('user')->where('price','between',[30,70])->select();

between表达式有两种方式whereBetween()和whereNotBetween() 使用whereBetween()方法

代码语言:javascript复制
Db::name('user')->whereBetween('price','30,70')->find();

使用whereNotBetween()方法

代码语言:javascript复制
Db::name('user')->whereNotBetween('price','30,70')->find();

In表达式可以用来进行IN查询

代码语言:javascript复制
Db::name('user')->where('price','in',[60,70,80])->find();
Db::name('user')->where('price','in','60,70,80')->find();

In表达式有两种方式whereIn()和whereNotIn() 使用whereIn()

代码语言:javascript复制
Db::name('user')->whereIn('price','60,70,80')->select();

使用whereNoIn

代码语言:javascript复制
Db::name('user')->whereNotIn('price','60,70,80')->select();

null表达式可以查询字段是否(不)是Null

代码语言:javascript复制
Db::name('user')->where('pass','null')->select();
Db::name('user')->where('pass','not null')->select();

null表达式有两种方式whereNull()和whereNotNull()

代码语言:javascript复制
Db::name('user')->whereNull('pass')->select();
Db::name('user')->whereNotNull('pass')->select();

EXP查询

使用exp可以自定义字段后的SQL语句

代码语言:javascript复制
Db::name('user')->where('price','exp','between 30 and 70')->select();

exp表达式的方法:whereExp()

代码语言:javascript复制
Db::name('user')->whereExp('price','in(70,80)')->select();

1 人点赞