yii2:多条件多where条件下碰到between时,between语句如何处理呢?

我有一张表:

id,name,telphone,ticket_no,status,create_time等字段,

在出具多条件查询时(当不涉及到时间范围或其他范围),可以用如下语句:

if (!empty($params[‘id‘])) {

$where_condition[‘oid‘] = $params[‘id‘];

}

if (!empty($params[‘post_name‘])) {

$where_condition[‘post_name‘] = $params[‘post_name‘];

}

if (!empty($params[‘telephone‘])) {

$where_condition[‘telephone‘] = $params[‘telephone‘];

}

if (!empty($params[‘ticket_no‘])) {

$where_condition[‘ticket_no‘] = $params[‘ticket_no‘];

}

if ($params[‘status‘] != -1) {

$where_condition[‘status‘] = $params[‘status‘];

}

$where_condition[‘delete_flg‘] = 0;

$count = static::find()

->where($where_condition)

->andFilterWhere([‘between‘,‘CREATE_TIME‘,$start_date, $end_date])

->count();

当涉及到create_time时间范围查询时,那么问题来了,between怎么加进去?$where_condition[‘CREATE_TIME‘]=‘between 时间1 and 时间2‘ 这样是不行的,花了一点时间查询了下,yii2有这样的方法:andFilterWhere,使用方法如下:

->andFilterWhere([‘like1‘, ‘name‘, ‘%a%‘])

#当参数1,参数2为空时,between方法会自动过滤掉,也就是此条件会被删除不执行

->andFilterWhere([‘between‘, ‘created_at‘, 0(参数1), 1433088000(参数2)])

具体代码如下:

if (!empty($params[‘id‘])) {

$where_condition[‘oid‘] = $params[‘id‘];

}

if (!empty($params[‘post_name‘])) {

$where_condition[‘post_name‘] = $params[‘post_name‘];

}

if (!empty($params[‘telephone‘])) {

$where_condition[‘telephone‘] = $params[‘telephone‘];

}

if (!empty($params[‘ticket_no‘])) {

$where_condition[‘ticket_no‘] = $params[‘ticket_no‘];

}

if ($params[‘status‘] != -1) {

$where_condition[‘status‘] = $params[‘status‘];

}

$start_date = $end_date = ‘‘;

if($params[‘isSearch‘] == 1) {

if (!empty($params[‘start_date‘]) && !empty($params[‘end_date‘])) {

$start_date = strtotime($params[‘start_date‘]);

$end_date = strtotime($params[‘end_date‘]) + 86400 - 1;

}

}

$where_condition[‘delete_flg‘] = 0;

$count = static::find()

->where($where_condition)

->andFilterWhere([‘between‘,‘CREATE_TIME‘,$start_date, $end_date])

->count();

yii2 mysql between_yii2:多条件多where条件下碰到between时,between语句如何处理呢?相关推荐

  1. yii2 mysql where in_Yii2查询之where条件拼装

    熟悉Yii2的查询条件后,用Active Record查询数据非常方便. 以下我们介绍where()方法当中,条件的拼装方式. 1 语法 Yii2用where()方法(当然还有其他方法)来实现条件筛选 ...

  2. mysql 表与表之间的条件比对_Mysql分库分表面试题(mysql高可用方案解析)

    数据库数据过大的系统架构-mysql分库分表高可用 如果当你的数据量达到千万级,亿级的时候,我们用常规的方式去做优化那么效果可能就不是很好了.这已经不是说性能的问题了,而是数据量响应的处理问题了,所以 ...

  3. mysql 查询条件优先级_mysql条件查询and or使用实例及优先级介绍

    mysql条件查询and or使用实例及优先级介绍 一.总结 一句话总结: 在where中可以包含任意数目的and和or操作符,在没有任何其他符号的时候,例如括号,SQL会首先执行and条件,然后才执 ...

  4. mysql 表与表之间的条件比对_值得收藏 | 一份最完整的MySQL规范

    一.数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用MySQL保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名 ...

  5. mysql inner join where_详解mysql 使用left join添加where条件的问题分析

    当前需求: 有group和factor两张表,一个group对应多个factor,现在想查询有效的group和对应的有效的factor,两个表都有isDel逻辑删除标志. 最开始的错误写法一: SEL ...

  6. mysql 聚合函数 怎么用在条件里_MySql 中聚合函数增加条件表达式的方法

    Mysql 与聚合函数在一起时候where条件和having条件的过滤时机 where 在聚合之前过滤 当一个查询包含了聚合函数及where条件,像这样的情况 select max(cid) from ...

  7. from mysql partition select_玩转select条件查询,避免踩坑

    条件查询 语法: select 列名 from 表名 where 列 运算符 值 说明: 注意关键字where,where后面跟上一个或者多个条件,条件是对前面数据的过滤,只有满足where后面条件的 ...

  8. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  9. MYSQL使用OR关键字查询,MySQL带OR关键字的多条件查询

    mysql带or关键字的多条件查询,与and关键字不同,or关键字,只要记录满足任意一个条件,就会被查询出来. select * | {字段名1,字段名2,--} from 表名 where 条件表达 ...

最新文章

  1. 大容量类 Redis 存储的场景补充-pika
  2. 前端基础:web语义化
  3. Flume Source 实例
  4. 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件
  5. Android测试提升效率批处理脚本
  6. 利用Spring的AbstractRoutingDataSource解决多数据源的读写分离问题
  7. 今天,帮技术圈伸张正义!
  8. 可代替 ASM,使用 AnnotationProcessor 做代码插桩
  9. 手机输入法带拼音声调_这些神奇的拼音输入法,你都知道几个?
  10. 顺序表的十个基本操作(全)
  11. git/gitgub
  12. python计算闰年
  13. 富文本框wangEditor
  14. Android studio 中文语言包安装
  15. Codesys电子凸轮表的规划与凸轮曲线的拟合
  16. oracle 索引快速全扫描,使用目录快速全扫描(Index FFS)避免全表扫描的若干场景
  17. FT2232作为JTAG烧录器的使用步骤详解
  18. omniplan导出html,MAC系统下的甘特图神器——Omniplan3使用指南
  19. 安装Zcashd Zcash-cli体验
  20. php百度收录排名代码,PHP查询百度收录数量代码

热门文章

  1. Qt:解决使用png图片时,报错libpng warning: iCCP: known incorrect sRGB profile的问题
  2. 如何解决某个端口被谁占用?
  3. 【已解决】Android 如何让应用在后台运行
  4. 深入java抽象类和接口
  5. python分组求和_Python学习笔记之pandas索引列、过滤、分组、求和功能示例
  6. android studio异步单元测试,在Android Studio中可以进行单元测试
  7. Linux / TCPIP / 判断 client 已经关闭的方法
  8. 启明云端WT32-CAM操作视频,让你快速上手ESP32camera应用
  9. 阿里云mysql强制走索引_MYSQL中常用的强制性操作(例如强制索引)
  10. Paddle.js PaddleClas 实战 ——『寻物大作战』AI 小游戏