如何在 Codeigniter 模型中编写此查询?

Posted

技术标签:

【中文标题】如何在 Codeigniter 模型中编写此查询?【英文标题】:How can I write this query in Codeigniter Model? 【发布时间】:2021-02-06 04:46:42 【问题描述】:
SELECT user_name, user_dept, user_level
FROM tbl_users
WHERE (user_dept = 'Admin' AND user_level = '2') OR (user_level = '3');

我需要在 CI 模型函数中编写这个。我尝试的是

function getForwardvalues($uname)

    $query = $this->db->select('user_name')->from('tbl_users')->where('user_dept'= $uname && 'user_level'='2')->or_where('user_level'='3')->get();
    return $query->result();

我也试过了,但我没有得到我想要的

function getForwardvalues($uname)

    $query = $this->db->select('user_name')
        ->from('tbl_users')
        ->group_start()
        ->where('user_dept =', $uname)
        ->where('user_level=', '2')
        ->group_end()
        ->or_where('user_level=','3')
        ->get();
    
    return $query->result();

【问题讨论】:

【参考方案1】:

试试这个

function getForwardvalues($uname)


    $this->db->select('user_name, user_dept, user_level');
    $this->db->from('tbl_users');
    $this->db->where('(user_dept = "'.$uname.'" AND user_level = 2)')->or_where('user_level', 3);
    $query = $this->db->get();

    return $query->result();

【讨论】:

如果我想在 where 子句中将 $uname 传递给那个“管理员”怎么办? @AB D 你到底想要什么?? KUMAR 我需要将参数@uname 传递给“Admin”如何? 好的。在我的编辑中用 $uname 更改单词 admin【参考方案2】:
function getForwardvalues($uname)


$user_dept="Admin";
$user_level="3"; 

$query = $this->db->select("user_name, user_dept, user_level")
        ->from("tbl_users")
        ->where("user_dept",$user_dept)
        ->where("user_level",$user_level)
        ->or_where("user_level ",'3')
        ->get();

 return $query->result();
 
 

【讨论】:

不,这不会检索第一个 AND where 子句.. 只会检索 or_where 之后的条件

以上是关于如何在 Codeigniter 模型中编写此查询?的主要内容,如果未能解决你的问题,请参考以下文章

如何在此查询的 codeigniter 活动记录中编写子查询

如何编写此子查询在Codeigniter中选择带限制的AVG

如何在codeigniter中使用存储过程的结果集

PHP 如何在CodeIgniter中编写更好的模型

如何在CodeIgniter中编写更好的模型

如何在 CodeIgniter 中编写查询,如下所示? [关闭]