在项目开发的过程中;有时候会有多个参数 去用在where查询中;那么这里的where语句是可能有也可能没有的

1.用原生的mysql语句来实现

private function getData($type, $status, $data_id, $start_time, $end_time, $size, $page, $id)
{
$type = trim($type);
$status = trim($status);
$data_id = trim($data_id);
$start_time = strtotime(trim($start_time)); // 转换为uninx时间戳
$end_time = strtotime(trim($end_time));
$size = trim($size);
$page = trim($page);
$id = trim($id); $where = ' where 1=1';
if ($type) {
$where .= " AND dp.task_type = $type";
}
if ($status) {
$where .= " AND d.data_status = $status";
}
if ($data_id) {
$where .= " AND d.id = '$data_id'";
}
if ($start_time) {
$where .= " AND d.dial_time >= $start_time";
}
if ($end_time) {
$where .= " AND d.dial_time <= $end_time";
}
if ($id) {
$where .= " AND b.id = $id";
} $sql = "SELECT d.id,d.dial_time,d.time_len,d.record,d.called_phone FROM a_data as d LEFT JOIN a_data_packet as dp ON d.data_packet_id = dp.id LEFT JOIN a_business as b ON dp.business_id = b.id ";
$sql .= $where;
$sql .= ' order by dial_time desc';
$sql .= " limit ".($page-1)*$size.", $size"; // 偏移量,每一页显示几条
$res = DB::select($sql); return $res;
}

2.用laravel的where语句来实现

private function getExtData($status, $data_id, $all_extract)
{
$db = \AiBusiness\Models\Data::select('id', 'dial_time','time_len', 'kh_phone')->where('data_status', $status);
if ($all_extract == 1) {
if ($data_id) {
$db->whereIn('id', $data_id);
}
}
$extract_data = $db->get(); return $extract_data;
}

最新文章

  1. (转)使用minicpan创建本地CPAN
  2. Intellij IDEA中的Mybatis Plugin破解
  3. DataTable转换为Json字符串的三种方法
  4. 【转载】详解CreateProcess调用内核创建进程的过程
  5. Leetcode 292 Nim Game 博弈论
  6. CentOS 6.3 配置 yum
  7. sybase 修改用户密码
  8. EXT 可选择图片列表的表单控件实现
  9. 201521123006 《java程序设计》 第14周学习总结
  10. java语言与jvm虚拟机简介
  11. 在OC代码中创建Swift编写的视图控制器
  12. MyBatis小问题(1)-Mapper中错误No constructor found...
  13. patA1059 Prime Factors
  14. 20165223《JAVA程序设计》第一周学习总结
  15. L3-020 至多删三个字符 (30 分)(DP)
  16. 第3章 Java数组(上): 一维数组和二维数组
  17. vander范德蒙德行列式
  18. CentOS7下安装MySQL5.7安装与配置
  19. Git超实用总结
  20. 两个Bounding Box的IOU计算代码

热门文章

  1. spark SQL学习(数据源之parquet)
  2. windchill系统——一些功能查找
  3. JavaScript中this关键字的使用比较
  4. U盘安装OS
  5. npm的镜像和淘宝互换
  6. 【lightoj-1026】Critical Links(桥)
  7. LeetCode OJ:Valid Palindrome(验证回文)
  8. react antd layout sider
  9. New Concept English three (38)
  10. pip国内镜像(清华大学镜像)