Codeigniter中的SQL查询IF ELSE

时间:2014-05-14 07:11:43

标签: php sql codeigniter

如何在codeigniter

中的sql查询中添加if else语句

这是我的代码:

$this->datatables->select(
                        'a.id,
                        c.capital_buildup,
                        a.loan_no,
                        a.member_no,
                        b.loan_type_name,
                        a.loan_amount,
                        a.terms,
                        a.date_applied,
                        IF(status = "Approved", "Approved","Pending")', //i want to add else statement here
                        FALSE);

我想要的结果查询是

 If( status = "Approved")
      //Approved
 else if (status = "Disapproved")
     //Disapproved
 else
     //Pending

3 个答案:

答案 0 :(得分:3)

我认为您想要的更容易使用CASE表达,比如;

CASE WHEN status = "Approved"    THEN "This is approved" 
     WHEN status = "Disapproved" THEN "This is disapproved"
                                 ELSE "This is pending"
END

答案 1 :(得分:0)

你可以试试这个:

$this->datatables->select(
                    'a.id,
                    c.capital_buildup,
                    a.loan_no,
                    a.member_no,
                    b.loan_type_name,
                    a.loan_amount,
                    a.terms,
                    a.date_applied,
                    CASE WHEN status = "Approved"    THEN "approved statement" 
                         WHEN status = "Disapproved" THEN "disapproved statement"
                                                     ELSE "pending statement"
                                                     END AS status',

                    FALSE);

Isaksson已经定义了case statement。它采用CI格式。

答案 2 :(得分:0)

您还可以获取数组中的所有行。而不是使用FOREACH来取消设置错误的值。

`foreach($result as $k => $row)
{  
if($row['status'] == "approved")
{     
$approved[] = $row;    
}
if($row['status'] == "disapproved")   
{ $disapproved[] = $row;}
}` 

我从未测试过。我希望这可行。