Thinkphp,Thinkphp笔记,12。数据库的查询表达式主要有三种:1.比较查询2.区间查询3.EXP查询
12。数据库的查询表达式
1.比较查询2.区间查询3.EXP查询
一.比较查询
1.查询表达式支持大部分常用的sQL语句,语法格式如下:
where('字段名','查询表达式','查询条件');
2.在查询数据进行筛选时,我们采用where()方法,比如id=80;
Db::name('user')->where('id','=',8->find();
Db::name('user')->where('id',80)->find(); //表达式为=时可以省略
3.使用<>、>、<、>=、<=可以筛选出各种符合比较值的数据列表;
Db::name('user')->where('id','<>',80)->select();
...
二.区间查询
1.使用like表达式进行模糊查询;
Db::name('user')->where('email','like','xiao%')->select();
...
2.like表达式还可以支持数组传递进行模糊查询;
Db::name('user')->where('email','like',['xiao%','wu%'])->select();
数组中条件关系默认是and,所以实际sql:SELECT * FROM‘tp_user’WHERE ('email ’LIKE'xiao%’ and ‘email` LIKE ‘wu%')
这里需要加第四个参数就可以了:
Db::name('user')->where('email','like',['xiao%','wu%'],‘or')->select();
实际sql:SELECT * FROM‘tp_user’WHERE ('email ’LIKE'xiao%’ OR ‘email` LIKE ‘wu%')
...
3.like表达式具有两个快捷方式whereLike()和 whereNoLike();
Db::name('user')->whereLike('email','xiao%')->select();
Db::name('user')->whereNotLike('email','xiao%')->select();
...
4. between表达式具有两个快捷方式whereBetween()和 whereNotBetween();
Db::name('user')->where('id','between','19,25')->select();
也支持数组方式:
Db::name( "user')->where('id','between',[19,25])->select();
快捷方式:
Db::name('user')->whereBetween('id','19,25')->select() ;
Db::name('user')->whereNotBetween('id','19,25')->select();
...
5. in表达式具有两个快捷方式whereIn()和 whereNotIn() ;
Db::name('user')->where('id','in','19,21,29')->select();
Db::name('user')->where('id','in',[19,21,29])->select();
快捷方式:
Db::name('user')->whereIn('id','19,21,29')->select();
Db::name('user')->whereNotIn('id','19,21,29')->select();
...
6. null表达式具有两个快捷方式whereNul1()和 whereNotNull();
Db::name('user')->where('uid','null')->select();
Db::name('user')->where('uid','not null')->select();
快捷方式:
Db::name('user')- >whereNull('uid')->select();
Db::name('user')->whereNotNull('uid')->select();
...
三.EXP查询
1.使用exp可以自定义字段后的sQL语句;(按实际sql写法拼装sql)
Db::name('user')->where('id','exp','IN (19,21,25)')->select();
Db::name('user')->whereExp('id','IN (19,21,25)')->select();
Tag: Thinkphp Thinkphp笔记