2

可以这样做:(条件1 AND condition2)OR(condition3 AND condition4)在codigniter中?

我尝试:

$this->db->where(condition1 - condition2);
$this->db->or_where(condition3 - condition4);

但这是: (condition1 AND condition2) OR (condition3 OR condition4)

4

6 回答 6

5

把它写在你的地方

$this->db->where("(condition1 AND condition2) OR (condition3 AND condition4)");

这仍然会转义数据,您不必使用 or_where 方法。

于 2012-10-19T19:45:54.993 回答
3

是的,有可能,为方便起见,将您想要使用的任何条件放入一个变量中

$where ="(condition 1 AND condition2) OR (condition3 AND condition4)";
$this->db->where($where);
于 2013-08-30T11:12:37.623 回答
1
$first="(COND1 AND COND2)";
$second= "(COND3 AND COND4)";

$query=$this->db->where($first)->or_where($second)->get();
于 2013-03-24T10:18:50.687 回答
1

你试过这样 ::::: 吗?

$this->db->where(COND1);
$this->db->where(COND2);
$this->db->or_where(COND3); 
$this->db->where(COND4); 
于 2013-03-07T07:24:48.867 回答
0

只需像这样使用普通查询:

$query="SELECT *
FROM table1 INNER JOIN table2 on table1.col=table2.col
WHERE (table1.whatever=? AND table1.hello=?) OR (table2.foo=? AND table2.pizza=?)
LIMIT 1";
$params=array();
$params[]='whatever';
$params[]='world';
$params[]='bar';
$params[]='cheese';


$result=$this->db->query($query,$params);
$result=$result->result_array();
print_r($result);
于 2013-03-21T23:15:51.690 回答
0

如果您使用的是 PHP5,那么以下代码将解决您的问题。

$this->db->select("*")
->where("condition_1 && condition_2")
->or_where("condition_3 && condition_4");

或者使用下面的代码也可以。

$this->db->where("condition_1 ");
$this->db->where("condition_2");
$this->db->or_where("condition_3 "); 
$this->db->where("condition_4 "); 
于 2014-12-24T17:35:20.930 回答