【问题标题】:Mysql query sum query in codeigniterCodeigniter中的Mysql查询和查询
【发布时间】:2015-02-23 09:24:34
【问题描述】:

Split mysql column in 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

如何执行上述查询?

【问题讨论】:

    标签: mysql sql codeigniter activerecord


    【解决方案1】:

    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() 接受可选的第二个参数。如果您将其设置为 FALSE,CodeIgniter 将不会尝试使用反引号保护您的字段或表名。如果您需要复合选择语句,这很有用。

    【讨论】:

    • 显示 8 分钟接受,这就是为什么我仍然不接受答案。 :)
    【解决方案2】:

    使用这个

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

    【讨论】:

      猜你喜欢
      • 2011-10-11
      • 2019-09-01
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多