如何通过结合使用CodeIgniter在MySQL中使用CASE

时间:2018-10-01 11:07:40

标签: php mysql codeigniter-3

我正在使用CodeIgniter,

我能够导出数据。我在Excel工作表中有一列称为“状态”的列。在status列中,我得到1,0,0,1,-1,2

现在,我必须在excel表中显示字符串名称。

-1="Pending"
 0="Cancel"
 1="Create"
 2="Verified"

我知道我必须使用CASE,但是我不知道如何与Codeignator一起使用。

我尝试了以下代码。

$this->db->select('tbl_customer.*,tbl_customer_shipping.*,product_order.*, CASE 
WHEN product_order.o_order_status =-1    THEN "Pending" 
WHEN product_order.o_order_status =0    THEN "Cancel"
WHEN product_order.o_order_status =1    THEN "Create"
ELSE "Verified"
END CASE');
$this->db->from('tbl_customer');
$this->db->join('tbl_customer_shipping', 'tbl_customer.cust_id=tbl_customer_shipping.cust_id', 'LEFT');
$this->db->order_by('product_order.o_date_of_added','DESC');

$query = $this->db->get();
$result = $query->result();

但是它不起作用

我遇到语法错误

Message: syntax error, unexpected 'CASE' (T_CASE)

您能帮我吗?

最后,我找到了解决方案。我忘了在案例末尾添加列的名称,并且使用了双反号。

$this->db->select("tbl_customer.*,tbl_customer_shipping.*,product_order.*,CASE 
    WHEN product_order.o_order_status =-1    THEN 'Pending'
    WHEN product_order.o_order_status =0    THEN 'Cancel'
    WHEN product_order.o_order_status =1    THEN 'Create'
    ELSE 'Verified'
END as o_order_status");

0 个答案:

没有答案