我遇到了CI Active Record的“不在”的问题。我试图排除一系列ID。我无法理解为什么一切都运行良好,花花公子与一个记录,但不是多个。
我的查询
$this->db->where_not_in('crm.user_id', $ignore);
问题是当我个人资料时,查询错误。
使用ID
的字符串// $ignore = "12,13";
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('16,13')
AND `survey` = 1
使用一串引号ID
// $ignore = "'12','13'";
SELECT *
FROM (`crm`)
WHERE `crm`.`user_id` NOT IN ('\'16\',\'13\'')
AND `survey` = 1
我是否被迫做了一个“ or_where_not_in ”或类似的循环?
答案 0 :(得分:32)
where_in
和where_not_in
希望您传递数组,而不是字符串作为第二个参数。
$ignore = array(12, 13);
$this->db->where_not_in('crm.user_id', $ignore);
链接到文档:http://www.codeigniter.com/userguide2/database/active_record.html