0

这似乎不起作用:

 /// delete emails first
         $this->db->where('DateSent', 'DateSent!=NULL');
        $this->db->delete('Emails');

我想我需要使用循环。不知道该怎么做。任何人都可以帮忙吗?

干杯

4

3 回答 3

4

如果您要查看非常有用的CodeIgniter用户指南,您会看到运算符应该作为第一个参数的一部分而不是第二个参数包含在内。这应该解决它:

$this->db->where('DateSent !=', 'NULL');
$this->db->delete('Emails');
于 2012-08-30T14:30:31.207 回答
1

尝试这个:

$this->db->query('
    DELETE FROM `Emails`
    WHERE id NOT IN (
        SELECT id
        FROM (
            SELECT id
            FROM `Emails`
            WHERE `Emails`.`DateSent` = NULL
        ) foo
    );
);

SQL 查询中获取的查询:从表中删除除最新 N 之外的所有记录?然后修改

于 2012-08-30T14:30:23.647 回答
0

首先,您需要将选定的值存储到一个数组中,比如“$checked”

$checked = implode(',',$checked);     //then it looks array('id1','id2','id3',..);

然后你可以删除为

$this->db->where("iUserId in",$checked);

$this->db->delete('my_table');

就是这样。它对我有用。我希望它对你有用。如果有用就接受

于 2012-09-03T07:37:14.160 回答