如何在mysql中使用带有连接的codeigniter

rlcwz9us  于 2021-06-19  发布在  Mysql
关注(0)|答案(0)|浏览(211)

我用的是codeigniter,
我可以导出数据。我在excel表中有一个名为“status”的列。在 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");

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题