yangyankan 发表于 2010-10-19 21:55:34

ci 数据库类怎么写 sum(if (journal_level = 1 ,1,0)) as num_core

后台转换成这个了 sum(if (journal_level = 1, `1`, `0))` as num_core

yangyankan 发表于 2010-10-19 21:58:39

$this->db->select() 可接受一个可选的第二个参数。如果你把它设为FALSE, CodeIgniter 将不会使用反引号保护你的字段或者表名。这在进行复合查询时很有用。

$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');

这个问题我解决了

jeongee 发表于 2010-10-19 22:58:24

用case when else end

sonic 发表于 2010-11-3 14:40:30

你这个是数据库程序语言吗?
我翻看了MYSQL手册的IF ELSE那一章
似乎是这么写的
IF search_condition THEN statement_list
    ...
   
END IF
这个不是DBA用的程序语句吗?
你不是WEB应用开发程序员吗???
是用PHP 的话用这个
if($flag)
{
   
}
else
{

}

jeongee 发表于 2010-11-3 15:32:28

本帖最后由 jeongee 于 2010-11-3 15:33 编辑

果断要这样

SUM(CASEWHEN journal_level = 1THEN 1 ELSE 0 END) AS num_core

mysql中case when语句的使用方法:
mysql中也有像php语言中switch case 这样的语句。

sonic 发表于 2010-11-3 17:25:44

果断要这样

mysql中case when语句的使用方法:
mysql中也有像php语言中switch case 这样的语句。...
jeongee 发表于 2010-11-3 15:32 http://codeigniter.org.cn/forums/images/common/back.gif

可以是可以。
但是貌似。
用这种程式的只有DBA了。触发器神马的。这个PHP肯定没有命令行给力啊。
页: [1]
查看完整版本: ci 数据库类怎么写 sum(if (journal_level = 1 ,1,0)) as num_core