2015-02-23 115 views
1

Split mysql column in codeigniterMysql在codeigniter中的查詢總和查詢

上面的鏈接是我的問題之一。我得到了上述問題的答案。但現在我有一個SQL查詢如下,

SELECT SUM(IF(pay_type = 1, `pay_amount`, `0))` mess_pay, SUM(IF(pay_type=2, `pay_amount`, `0))` est_pay FROM (`mess_stock`); 

我想在codeigniter中使用上面的代碼。

我曾嘗試以下方法

$this->db->select('SUM(IF(pay_type = 1, pay_amount, 0)) mess_pay, SUM(IF(pay_type=2, pay_amount, 0)) est_pay'); 
$this->db->from('mess_stock'); 

但它拋出下面的輸出

A Database Error Occurred 
Error Number: 1064 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mess_pay, SUM(IF(pay_type=2, `pay_amount`, `0))` est_pay FROM (`mess_stock`)' at line 1 


SELECT SUM(IF(pay_type = 1, `pay_amount`, `0))` mess_pay, SUM(IF(pay_type=2, `pay_amount`, `0))` est_pay FROM (`mess_stock`) 


Filename: /var/www/college/modules/mess_fees/models/mess_fees_model.php 
Line Number: 25 

我如何可以執行上面的查詢?

回答

2

select()假的最後一個參數:

$this->db->select('SUM(IF(pay_type = 1, pay_amount, 0)) mess_pay, SUM(IF(pay_type=2, pay_amount, 0)) est_pay', false); 

這將防止從CI加``。

看看商務部:http://www.codeigniter.com/user_guide/database/active_record.html#select

$這個 - > DB->選擇()接受一個可選的第二個參數。如果將其設置爲FALSE,則CodeIgniter不會嘗試使用反引號來保護字段或表名。如果您需要複合選擇語句,這很有用。

+0

非常感謝你的回答,這工作正常。 – 2015-02-23 09:33:50

+1

不要忘了標記答案,如果它幫助:) – AdrienXL 2015-02-23 09:37:50

+2

它顯示8分鐘接受,這就是爲什麼我仍然不接受答案。 :) – 2015-02-23 09:39:12

0

使用本

$summ = $this->db->query("SELECT SUM(column) FROM 
table WHERE columnid > '0' ")->result_array(); 
echo '<br>summ=>'.$summ[0]['SUM(answer)'];