比较查询
查询表达式支持大部分常用的 SQL 语句,语法格式如下
where('字段名','查询表达式','查询条件');
在查询数据进行筛选时,我们采用 where()方法,比如 id=79;
$user1 = Db::name('user')->where('id', 79)->find();
$user2= Db::name('user')->where('id','=',79)->find();
return json([$user1,$user2]);
使用<>、>、<、>=、<=可以筛选出各种符合比较值的数据列表
public function index()
{
$users = Db::name('user')->where('id','<>', 79)->select();
return json($users);
}
区间查询
使用 like 表达式进行模糊查询
public function index()
{
$users = Db::name('user')->where('username','like','%李%')->select();
return json($users);
}
like 表达式还可以支持数组传递进行模糊查询
public function index()
{
Db::name('user')->where('email','like',['xiao%','wu%'], 'or')->select();
return Db::getLastSql();
}
like 表达式具有两个快捷方式 whereLike()和 whereNoLike()
public function index()
{
Db::name('user')->whereLike('email','xiao%')->select();
dump(Db::getLastSql());
Db::name('user')->whereNotLike('email','xiao%')->select();
dump(Db::getLastSql());
}
between 表达式具有两个快捷方式 whereBetween()和 whereNotBetween()
public function index()
{
$res1 = Db::name('user')->where('id', 'between', '19,25')->select();
dump($res1);
$res2 = Db::name('user')->where('id', 'between', [19, 25])->select();
dump($res2);
$res3 = Db::name('user')->whereBetween('id', '19,25')->select();
dump($res3);
$res4 = Db::name('user')->whereNotBetween('id', '19,25')->select();
dump($res4);
}
in 表达式具有两个快捷方式 whereIn()和 whereNotIn();
public function index()
{
$res1 = Db::name('user')->where('id', 'in', '19,21,29')->select();
dump($res1);
$res1 = Db::name('user')->where('id', 'in', [19, 21, 29])->select();
dump($res1);
$res1 = Db::name('user')->whereIn('id', '19,21,29')->select();
dump($res1);
$res1 = Db::name('user')->whereNotIn('id', '19,21,29')->select();
dump($res1);
}
null 表达式具有两个快捷方式 whereNull()和 whereNotNull()
EXP查询
使用 exp 可以自定义字段后的 SQL 语句
public function index()
{
$res1 = Db::name('user')->where('id','exp','IN (19,21,25)')->select();
$res2 = Db::name('user')->whereExp('id','IN (19,21,25)')->select();
return json([$res2,$res1]);
}