所以我承认这个标题有点令人困惑,我很抱歉,因为我不知道该怎么做,所以对那里的建议持开放态度。无论如何,关于实际问题。我有一个查询,大部分情况下都可以正常工作,但是我仍然会产生一些错误的结果。也是可以理解的。因为这就是形成查询的方式。对许多ands和许多ors松散地串在一起。我需要做的是在其中包含一组 where 子句,( )
然后在另一个中包含一个and
then 剩余的子句集,( )
我不知道这对任何人是否有意义。
基本上,如果我直接手动输入查询,它看起来像..
select * from my_table
where (cond1 = this and cond2 = that)
and (cond2 != something or cond3 > other)
不太确定如何使用 codeigniter 的活动记录来实现这一点。我目前拥有的是。
$this->db->select('user_event_invite.*, game_bridge.*, user_event.*, user_event.location as bizfo')
->from('user_event')
->join('game_bridge', 'user_event.gID = game_bridge.gID')
->join('user_event_invite', 'user_event_invite.eID = user_event.eID')
->where('user_event_invite.friendID', $mID)
->where('user_event.isactive', 0)
->where('user_event_invite.isactive', 0)
->where('user_event.ends >=', $this->genfunc->unixToMySQL(time()))
->where('user_event.ends !=', '0000-00-00 00:00:00')
->or_where('yes > ', 0)
->or_where('no > ', 0)
->or_where('maybe > ', 0);
但我最终想要的是一组中的所有这些特定条款..
->where('user_event_invite.friendID', $mID)
->where('user_event.isactive', 0)
->where('user_event_invite.isactive', 0)
->where('user_event.ends >=', $this->genfunc->unixToMySQL(time()))
->where('user_event.ends !=', '0000-00-00 00:00:00')
然后将该组与和 AND 组合到另一个组。
->or_where('yes > ', 0)
->or_where('no > ', 0)
->or_where('maybe > ', 0);