codeigniter where子句显示结果或者

时间:2016-06-27 04:29:39

标签: php mysql database codeigniter

我在使用时遇到一些问题'在'在codeigniter中,我想修改不使用的子句,而是使用或。

这是代码:

$this->db->where_in('id','1,2,3');

它的工作原理如下:

$this->db->where('id',1);
$this->db->where('id',2);
$this->db->where('id',3);

但我想要这样的结果:

$this->db->where('id',1);
$this->db->or_where('id',2);
$this->db->or_where('id',3);

但它仍然使用在哪里而不是在哪里。谢谢

3 个答案:

答案 0 :(得分:3)

您的where_in()用法错误。您必须在array中声明要比较的值,如下所示:

$ids = array('1', '2', '3');
$this->db->where_in('id', $ids);
//Produces: WHERE id IN ('1', '2', '3')

或者像这样:

$this->db->where_in('id', array('1', '2', '3'));
//Produces: WHERE id IN ('1', '2', '3')

答案 1 :(得分:1)

如何使用它:

$this->db->select()->from('tbl')
   ->group_start()
     ->where('id', 1)
     ->or_group_start()
       ->where('id', 2)
       ->where('id', 3)
     ->group_end()
   ->group_end();

<强>更新

{{1}}

答案 2 :(得分:0)

请检查where_in

的语法
$this->db->where_in()

生成{AND 1}} SQL查询,如果合适,则使用AND

WHERE field IN (item, item)

如果合适,生成与OR连接的$ids = array(1, 2, 3); $this->db->where_in('id', $ids); $this->db->or_where_in() SQL查询

WHERE field IN (‘item’, ‘item’)

生成{AND 1}} SQL查询,如果合适,则使用AND

$ids = array('1', '2', '3');
$this->db->or_where_in('id', $ids);


$this->db->where_not_in()

如果合适,生成与OR连接的WHERE field NOT IN (‘item’, ‘item’) SQL查询

$ids = array('1', '2', '3');
$this->db->where_not_in('id', $ids);


$this->db->or_where_not_in()

有关详细信息,请参阅官方文档https://www.codeigniter.com/userguide3/database/query_builder.html