喜迎
春节

ThinkPHP5框架where条件中含有or的使用方法


1. 直接whereOr

1
2
$list = Db::name('tb')->where(['status'=>1,'admin_id'=>5])->whereOr(['type'=>1,'step'=>2])->select();
// 生成的sql为:select * from `tb` where `status`=1 and `admin_id`=5 or (`type`=1 or `step`=2);

2. 采用闭包的方式

1
2
3
4
5
6
7
8
$map = ['status'=>1,'admin_id'=>5];
$orMap = ['type'=>1,'step'=>2];
$list = Db::name('tb')->where(function ($query) use ($map) {
$query->where($map);
})->whereOr(function ($query) use ($orMap) {
$query->where($orMap);
})->order('id desc')->select();
// 生成的sql为:select * from `tb` where (`status`=1 and `admin_id`=5) or (`type`=1 and `step`=2);

一般来说,在复杂的查询里,我们更多的是使用第二种方式。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
评 论
 上一篇
MySQL中的binlog
MySQL中的binlog
如何查看binlog日志1. 开启binlog 在my.ini文件[mysqld]里添加log_bin=mysql-bin,值 mysql-bin 是日志的基本名或前缀名 通过mysql的变量配置表,查看二进制日志是否已开启 查看MySQL
2022-05-10
下一篇 
PHP中数组内容依次赋值给变量
PHP中数组内容依次赋值给变量
在日常开发过程中,经常需要把数组中的内容依次赋值给变量,可以使用list、[]、extract来处理。 1. list($var1,$var2…) = $arr; 或者[$var1,$var2…] = $arr; 将数组中的值赋给一
2022-05-08
  目录
hexo