4 Db类:查询表达式

0)基本语法

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

不区分大小写

 1)比较类型

=     等于    
<>    不等于
>     大于
>=    大于等于
<     小于
<=    小于等于

 2)复杂类型

[not] like       模糊查询   whereLike('字段名','匹配条件')
[not] between    区间查询
[not] in         in查询
[not] NULL       查询字段是不是NULL
[not] exists     存在查询
[not] regexp     正则查询

 3)时间相关

between time  时间区间比较
> time        大于某个时间
< time        小于某个时间
>= time       大于等于某个时间
<= time       小于等于某个时间

 4)其他

exp          表达式查询,支持sql语法
find in set FIND_IN_SET查询

 

二 使用实例

1)比较类型

等于
Db::name('user')->where('id','=',100)->select();
Db::name('user')->where('id',100)->select();//简写
select * from `think_user` where `id` = 100;

2)like的使用 

like:Db::name('bbs_category')->where('name','like','%江')->select();
select * from `bbs_category` where `name` like '%江';
not like:Db::name('bbs_category')->where('name','not like','%江')->select();
select * from `bbs_category` where `name` not like '%江';

支持多个参数
Db::name('bbs_category')->where('name', 'like', ['%江','小%'],'OR')->select();
select * from bbs_category where (name like '%江' or name like '小%');

//快捷查询

Db::name('bbs_category')->whereLike('name','thinkphp%')->select();
Db::name('bbs_category')->whereNotLike('name','thinkphp%')->select();

3)between 查询

查询条件支持字符串和数组
where
('id','between','1,8') = where('id','between',[1,8]);
select * from `bbs_category` where `id` between 1 and 8

//快捷查询
Db::name('bbs_category')->whereBetween('id','1,8')->select();
Db::name('bbs_category')->whereNotBetween('id','1,8')->select();

4)in查询

//查询条件支持字符串和数组
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();

5)查询字段是否是 null 或  not null

//常规语法
Db::name('bbs_category')->where('e_name','=','null')->select();//等于NULL
Db::name('bbs_category')->where('e_name','=','not null')->select();//不等于NULL


//快捷查询 Db::name('bbs_category')->whereNull('e_name')->select(); Db::name('bbs_category')->whereNotNull('e_name')->select();

 6)EXP:表达式 支持更复杂的查询

$res = Db::name('bbs_category')->where('id','in','1,3,8')->select();

//基础语法
$res = Db::name('bbs_category')->where('id','exp',' IN (1,3,8) ')->select();

//快捷查询
Db::name('bbs_category')->whereExp('id', 'IN (1,3,8) ')->select();

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

 

posted @ 2020-12-30 11:15  棉花糖88  阅读(275)  评论(0)    收藏  举报