我在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_inwhere_not_in希望您传递一个数组,而不是字符串作为第二个参数。

$ignore = array(12, 13);

$this->db->where_not_in('crm.user_id', $ignore);


链接到文档:http://www.codeigniter.com/userguide2/database/active_record.html

10-01 05:10
查看更多