用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3723|回复: 8
收起左侧

[已解决] 问大家个问题,这个sql用ar怎么写?

[复制链接]
发表于 2010-7-9 16:06:36 | 显示全部楼层 |阅读模式
问大家个问题,这个sql用ar(active record)应该怎么写?
SQL复制代码
SELECT * FROM test
WHERE a=1 OR (b=1 AND c=1);
复制代码
发表于 2010-7-9 17:39:28 | 显示全部楼层
http://codeigniter.org.cn/user_guide/database/active_record.html 仔细看一遍,然后写个总结
发表于 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,绝大多数情况下肯定有一种能满足你的要求

评分

参与人数 2威望 +4 收起 理由
Hex + 2 我很赞同
saturn + 2

查看全部评分

 楼主| 发表于 2010-7-10 12:00:44 | 显示全部楼层
回复 3# ares333

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

方法1,2,3都避开了这个问题,直接使用了字符串来达到括号的这种效果
我想问有没有不用字符串这种形式,直接使用ar函数达到这种效果?
 楼主| 发表于 2010-7-13 12:04:07 | 显示全部楼层
顶,继续求解
 楼主| 发表于 2010-7-14 14:55:19 | 显示全部楼层
顶,继续求解
发表于 2010-7-14 15:33:17 | 显示全部楼层
没有,AR 没你想的那么强大。
 楼主| 发表于 2010-7-14 18:01:52 | 显示全部楼层
好的,谢谢老大!我也找了半天一直没找到。
发表于 2010-7-14 20:15:14 | 显示全部楼层
我说句题外话,PHP不是那种象.NET Framework那样的闭源黑盒编程模型。换句话说,你完全可以去研究下CI的代码看看是否能符合你的要求,学习要主动吧,这也就是进阶的一个必需条件。对吗?

评分

参与人数 1威望 +2 收起 理由
Hex + 2 我很赞同

查看全部评分

本版积分规则