php – 在Codeigniter中分组WHERE子句
发布时间:2020-05-25 09:53:45 所属栏目:PHP 来源:互联网
导读:我想使用Codeigniter中的Active Records生成以下SQL代码: WHERE name != Joe AND (age 69 OR id 50) 做以下似乎是尽可能的,我不知道如何分组他们 $this-db-select()-from(users)-where(name !=, Joe)-where(age , 69)-or_where(
|
我想使用Codeigniter中的Active Records生成以下SQL代码: WHERE name != 'Joe' AND (age < 69 OR id > 50) 做以下似乎是尽可能的,我不知道如何分组他们 $this->db->select()->from('users')->where('name !=','Joe')->where('age <',69)->or_where('id <',$id);
有任何想法吗?我的SQL查询太复杂了,所以我不想重写传统SQL中的所有东西. UPDATE 我的SQL代码根据传递给模型方法的某些参数的值动态生成.无法使用括号的问题会导致问题,因为运算符优先级是在OR之前首先评估AND. *这是我的活动记录代码的一大块,其前后还有一些其他代码: ... some $this->db->where() ...
... some $this->db->where() ...
if($price_range) {
$price_array = explode('.',$price_range);
for($i = 0; $i < count($price_array); $i++) {
if($i == 0) {
$this->db->where('places.price_range',$price_array[$i]);
} else {
$this->db->or_where('places.price_range',$price_array[$i]);
}
}
}
... some $this->db->where() ...
... some $this->db->where() ...
问题是因为我使用$this-> db-> or_where()引入了一个OR子句,它将操作符优先级引入混乱,无法使用()来更改顺序. 有没有办法解决这个问题? ** 您可以使用一个大字符串.$this-> db-> select() – > from(‘users’) – > where(“name!=’Joe’AND(age< 69 OR id> 50)“); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
