我在使用时遇到一些问题'在'在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);
但它仍然使用在哪里而不是在哪里。谢谢
答案 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