PHP之查询表达式
百分号在MySQL中表示通配符。在LIKE子句中,百分号可以匹配任意字符。
一、比较查询
常用类型
//查询表达式支持大部分常用 SQL 语句,
//语法格式:where('字段名','查询表达式','查询条件')
Db::name('user')->where('id',10)->find();
用于比较值的数据列表
//等价于
Db::name('user','=',10)->find();
//使用 <>、>、<、>=、<= 筛选出各符合比较值的数据列表
Db::name('user')->where('id','<>',80)->select();
二、区间查询
like 表达式模模糊查询
//like 表达式模模糊查询
Db::name('user')->where('name','like','李%')->select();
like 表达式数组传参查模糊查询
//like 表达式数组传参查模糊查询
Db::name('user')->where('name','like',['%四','%三'])->select();
//select * from 'test_user' where('name' like '%四' and 'name' like '%三');
Db::name('user')->where('name','like',['%四','%三'],'or')->select();
//select * from 'test_user' where('name' like '%四' or'name' like '%三');
like 的两个快捷查询
//like 的两个快捷查询 whereBetween() 和 whereNotBetween (),whereLike() 和 whereNotLike(),whereIn() 和 whereNotIn() , whereNull() whereNotNull()
Db::name('user')->whereLike('name','%四')->select();
Db::name('user')->whereNotLike('name','%四')->select();
Db::nmae('user')->where('id','between','4,9')->select();//左右都包含
Db::name('user')->where('id','between',[4,9])->select():
Db::name('user')->whereBetween('id','4,9')->select();
Db::name('user')->where('id','in','4,6,8')->select();
Db::name('user')->whereIn('id',[4,6,8])->select();
Db::name('user')->where('code','null')->select():
Db::name('user')->where('code','not null')->select();
Db::name('user')->whereNull('code')->select();
Db::name('user')->whereNotNull('code')->select();
二、EXP 查询
自定义字段后的 SQL 语句
//使用 exp 可以自定义字段后的 SQL 语句
Db::name('user')->where('id','exp','IN (4,1,25)')->select();
Db::name('user')->whereExp('id','IN (4,1,25)')->select();
表达式查询的用法
表达式查询的用法示例如下:
表达式 | 含义 |
---|---|
EQ、= | 等于(=) |
NEQ、<> | 不等于(<>) |
GT、> | 大于(>) |
EGT、>= | 大于等于(>=) |
LT、< | 小于(<) |
ELT、<= | 小于等于(<=) |
LIKE | 模糊查询 |
[NOT] BETWEEN | (不在)区间查询 |
[NOT] IN | (不在)IN 查询 |
[NOT] NULL | 查询字段是否(不)是NULL |
[NOT] EXISTS | EXISTS查询 |
EXP | 表达式查询,支持SQL语法 |
> time | 时间比较 |
< time | 时间比较 |
between time | 时间比较 |
notbetween | time 时间比较 |