Codeigniter相当于这个mysql查询

时间:2012-10-04 06:00:57

标签: php mysql codeigniter

我正在尝试掌握CI数据库助手/ class / lib。我可以做的核心基础没问题。但我习惯于直接编写查询而不是使用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中处理该查询,因此我正在就此问题寻求一些指导。

3 个答案:

答案 0 :(得分: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');

答案 1 :(得分:1)

看看我的这个答案。这将使您更好地了解如何在活动记录中使用子查询或此类情况

How can I rewrite this SQL into CodeIgniter's Active Records?

答案 2 :(得分: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