0

我试图掌握 CI 数据库助手/类/库。而核心基础我可以做的没有问题。但是我习惯于直接编写查询而不是使用 ORM,这有点令人困惑。反正..

我有这个查询

SELECT * FROM my_table 
  WHERE ((a_id = xx OR b_id = xx) AND (a_id = zz OR b_id = zz)) 
  AND active = 1

基本上我有一个表,我有 2 个用户相互关联,但是有多个用户,所以我需要确保连接存在,特别是在 2 之间,其中活动标志是什么。

但是不确定如何在 CI 的 ORM 中处理该查询,因此我正在寻求有关该问题的一些指导。

4

3 回答 3

1

试试下面的代码

$this->db->select('*');
$this->db->where('(a_id = "xx" or b_id = "xx")';
$this->db->where('(a_id = "zz" or b_id = "zz")';
$this->db->where('active', '1');
于 2012-10-04T06:12:29.433 回答
1

看看我的这个回答。这将使您对如何在活动记录中使用子查询或这种情况有一个很好的了解

如何将此 SQL 重写到 CodeIgniter 的活动记录中?

于 2012-10-04T06:32:10.333 回答
1

如果您不想使用活动记录,您可以这样做

$this->load->database();
$sql = "SELECT * FROM mytable WHERE visible = 't' ORDER BY symbol";
$query = $this->db->query($sql);
return $query->result();

请参阅http://codeigniter.com/user_guide/database/queries.html

于 2012-10-04T15:44:48.133 回答