【问题标题】:codeigniter, Using Case When for Where Querycodeigniter,在 Where 查询中使用 Case When
【发布时间】:2013-05-28 05:47:54
【问题描述】:

我有这个查询,我想让它以 codeigniter 查询形式工作,所以想知道它是否可能。

这是我想以codeigniter自己的方式在Codeigniter中实现的查询。

    use zorkif_next;
SELECT 
    `osp_job_status_track`.`StatusID`,
    `osp_job_status_track`.`SubStatusID`,
    `osp_job_sub_status`.`CurrentStatus`
FROM
    (`osp_job_details`)
        LEFT JOIN
    `osp_job_status_track` ON `osp_job_status_track`.`JobID` = `osp_job_details`.`JobID`
        LEFT JOIN
    `osp_job_status` ON `osp_job_status`.`StatusID` = `osp_job_status_track`.`StatusID`
        LEFT JOIN
    `osp_job_sub_status` ON `osp_job_sub_status`.`SubStatusID` = `osp_job_status_track`.`SubStatusID`
        LEFT JOIN
    `hr_employee_details` ON `hr_employee_details`.`EmployeeID` = `osp_job_details`.`AssignToEmployeeID`
        LEFT JOIN
    `osp_job_type` ON `osp_job_type`.`JobTypeID` = `osp_job_details`.`JobtypeID`
WHERE
    -- `isDefault` = 1
       --    AND 

    CASE WHEN `osp_job_status`.`StatusID` = 2 
    THEN  `osp_job_sub_status`.`CurrentStatus` = 3
    ELSE `osp_job_status`.`StatusID` >= 2
    END ;

那么如何在

中实现这个查询
$this->db->where($where);

???

【问题讨论】:

  • 没有办法在CI中实现CASE。 CI SQL 库很弱
  • 不确定在 CI 中是否可行。你可以去看看活动记录中都有什么。检查这个文件-system\database\DB_active_rec.php
  • @diEcho 因此,如果它不能以 codeigniters 的方式实现,那么如何在 codeigniter 中以简单的方式实现它,例如 $this->db->query('')??
  • $sql = 'Your complete mySQL query' 然后$this->db->query($sql)

标签: php mysql codeigniter


【解决方案1】:

这在 CI 中是不可能的。您需要编写自己的查询。请查看此文件。您可以在那里查看所有可用的方法。

\system\database\DB_active_rec.php

【讨论】:

猜你喜欢
  • 2014-11-29
  • 2018-01-11
  • 2021-12-04
  • 2017-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多