Mysql 在 codeigniter 中查询求和查询
Mysql query sum query in codeigniter
以上link是我的问题之一。我得到了上述问题的答案。但是现在我有一个 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
如何执行上述查询?
将 select()
的最后一个参数设置为 false :
$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->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.
使用这个
$summ = $this->db->query("SELECT SUM(column) FROM
table WHERE columnid > '0' ")->result_array();
echo '<br>summ=>'.$summ[0]['SUM(answer)'];
以上link是我的问题之一。我得到了上述问题的答案。但是现在我有一个 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
如何执行上述查询?
将 select()
的最后一个参数设置为 false :
$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->select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.
使用这个
$summ = $this->db->query("SELECT SUM(column) FROM
table WHERE columnid > '0' ")->result_array();
echo '<br>summ=>'.$summ[0]['SUM(answer)'];