我在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”之类的循环?
最佳答案
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