从代码点火器中删除查询


Delete Query from codeigniter

我正在尝试弄清楚我需要如何进行此查询。我正在尝试删除所有已注册但未在一定时间限制内激活的用户。

function purgeNA($expirePeriod)
{
    $this->db->where('usersStatusesID', 1);
    $this->db->where('UNIX_TIMESTAMP(registrationDate) <', time() - $expirePeriod);
    $this->db->delete($this->usersRegistrationsTable);
}

这是我的数据库结构:

usersRegistrationsTable - userID, registrationDate
usersTable              - userID, usersStatusesID

据我所知,codeigniter 不支持通过活动记录接口DELETE查询中的JOIN。相反,您需要执行一个 SQL 语句:

$sql = "DELETE FROM 
          usersTable u
          JOIN usersRegistrationsTable r ON u.userID = r.userID
          WHERE usersStatusesID = 1 AND UNIX_TIMESTAMP(registrationDate) < ?";
$this->db->query($sql, array(time() = $expirePeriod));