php - 代码点火器 : how to write where_in OR where_in query?

标签 php mysql codeigniter activerecord where-in

我正在使用 codeigniter 查询数据库,我需要在 where 子句中有条件地比较数组。

所以基本上我想做的是:where_in 或 where_in 取决于哪个数组中有数据。所以我将拥有一个 user_id 数组或一个 area_id 数组。

我不确定如何组合 where_in 比较。这是我需要修改的查询:

public function get_checks_test($org_id,$users,$areas) {
    // get todays date
    $todays_date = date("Y-m-d");
    // build where array
    $check_array = array('c.org_id =' => $org_id, 'c.status !=' => '0', 'c.due <=' => $todays_date);
    // build query
    $this->db->select('c.*,a.check_area_id,b.check_user_id,d.area_name,u.first_name,u.last_name');
    $this->db->order_by('c.due', 'asc');
    $this->db->where($check_array);
    $this->db->where_in('user_id', $users);
    $this->db->or_where_in('area_id', $areas);
    $this->db->join('check_assigned_areas a','a.check_id = c.check_id','left');
    $this->db->join('check_assigned_users b','b.check_id = c.check_id','left');
    $this->db->join('areas d','d.area_id = a.check_area_id','left');
    $this->db->join('users u','u.id = b.check_user_id','left');
    $check_object = $this->db->get('checks c');
    return $check_object->result();
}

我认为我找不到 or_where_in 函数。

我可以这样做还是需要重新考虑?

谢谢

最佳答案

是的,有一个or_where_in在 Codeigniter 中运行。

示例

$arr_price=array(20,40,80,30);
$this->db->or_where_in('price', $arr_price);
//SQL Query: OR price IN(20,40,80,30);

语法:

or_where_in([$key = NULL[, $values = NULL[, $escape = NULL]]])

参数:

$key (string) – The field to search
$values (array) – The values searched on
$escape (bool) – Whether to escape values and identifiers

返回:

DB_query_builder instance

返回类型:

object

生成一个 WHERE 字段 IN(‘item’, ‘item’) SQL 查询,如果合适的话用‘OR’连接。 生成一个 WHERE 字段 IN(‘item’, ‘item’) SQL 查询,如果合适的话用‘OR’连接。

如果需要更多帮助,我很乐意提供帮助。快乐编码。

关于php - 代码点火器 : how to write where_in OR where_in query?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39955166/

相关文章:

php - Auth::check() 在 Laravel 5.4 中返回 false

mysql - AWS Aurora MySQL 5.7.12 重音敏感排序规则

mysql - ON DUPLICATE 什么都不更新

php - 如何使用 PHP 切换多个提交按钮

javascript - 如何将带有数组的表单值传递给 Angular Controller

javascript - Codeigniter、jQuery 和 Ajax - 动态显示新数据库内容时防止页面刷新

php - 从数组中的每个值中删除破折号,然后重建数组

javascript - 选择单选按钮时显示或隐藏字段 codeigniter

php - 提交联系表单并使用 validate.js

php - 访问输入名称中使用的数组以保留数据 (PHP)