2015-02-23 4 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`); 

Я хочу использовать вышеуказанный код в кодеигниторе.

Я попробовал следующий метод

$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

$ this-> db-> выберите() принимает необязательный второй параметр. Если вы установите значение FALSE, CodeIgniter не будет пытаться защитить ваши имена полей или таблиц с помощью обратных ссылок. Это полезно, если вам нужен составной оператор select.

+0

Большое вам спасибо за ваш ответ, это работает отлично. –

+1

Не забудьте пометить ответ как принятый, если он помог :) – AdrienXL

+2

Показывает 8 минут, чтобы принять, поэтому до сих пор я не принимаю ответ. :) –

0

ИСПОЛЬЗОВАТЬ

$summ = $this->db->query("SELECT SUM(column) FROM 
table WHERE columnid > '0' ")->result_array(); 
echo '<br>summ=>'.$summ[0]['SUM(answer)']; 
Смежные вопросы