我正在试图弄清楚我需要如何进行此查询。我正在尝试删除所有已注册但未在某个时间限制内激活的用户。
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
答案 0 :(得分:4)
据我所知,codeigniter不支持JOIN
通过Active Record接口查询DELETE
。相反,您需要执行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));