mahone 发表于 2010-7-9 16:06:36

问大家个问题,这个sql用ar怎么写?

问大家个问题,这个sql用ar(active record)应该怎么写?select * from test
where a=1 or (b=1 and c=1);

Hex 发表于 2010-7-9 17:39:28

把 http://codeigniter.org.cn/user_guide/database/active_record.html 仔细看一遍,然后写个总结 :lol

ares333 发表于 2010-7-9 17:48:29

方法1:
$this->db->get_where('test','a=1 or (b=1 and c=1)');
方法2:
$this->db->or_where('a=1',NULL,FALSE);
$this->db->or_where('(b=1 and c=1)',NULL,FALSE);
$this->db->get('test');
方法3:
$this->db->where('id=1 or (id=1 and id=1)',NULL,FALSE);
$this->db->get('test');

应该还有其他方法,有兴趣自己研究吧

CI很灵活提供了很大的弹性,包括但不局限于AR,绝大多数情况下肯定有一种能满足你的要求

mahone 发表于 2010-7-10 12:00:44

回复 3# ares333

谢谢大家的回答。其实我为什么要问这个问题呢?我是对这个where字句里的括号非常纠结

方法1,2,3都避开了这个问题,直接使用了字符串来达到括号的这种效果
我想问有没有不用字符串这种形式,直接使用ar函数达到这种效果?

mahone 发表于 2010-7-13 12:04:07

顶,继续求解

mahone 发表于 2010-7-14 14:55:19

顶,继续求解

Hex 发表于 2010-7-14 15:33:17

没有,AR 没你想的那么强大。

mahone 发表于 2010-7-14 18:01:52

好的,谢谢老大!我也找了半天一直没找到。

saturn 发表于 2010-7-14 20:15:14

我说句题外话,PHP不是那种象.NET Framework那样的闭源黑盒编程模型。换句话说,你完全可以去研究下CI的代码看看是否能符合你的要求,学习要主动吧,这也就是进阶的一个必需条件。对吗?
页: [1]
查看完整版本: 问大家个问题,这个sql用ar怎么写?