laravel中有条件使用where
2024-09-25 08:23:13
在项目开发的过程中;有时候会有多个参数 去用在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;
}
最新文章
- (转)使用minicpan创建本地CPAN
- Intellij IDEA中的Mybatis Plugin破解
- DataTable转换为Json字符串的三种方法
- 【转载】详解CreateProcess调用内核创建进程的过程
- Leetcode 292 Nim Game 博弈论
- CentOS 6.3 配置 yum
- sybase 修改用户密码
- EXT 可选择图片列表的表单控件实现
- 201521123006 《java程序设计》 第14周学习总结
- java语言与jvm虚拟机简介
- 在OC代码中创建Swift编写的视图控制器
- MyBatis小问题(1)-Mapper中错误No constructor found...
- patA1059 Prime Factors
- 20165223《JAVA程序设计》第一周学习总结
- L3-020 至多删三个字符 (30 分)(DP)
- 第3章 Java数组(上): 一维数组和二维数组
- vander范德蒙德行列式
- CentOS7下安装MySQL5.7安装与配置
- Git超实用总结
- 两个Bounding Box的IOU计算代码