我为拥有客户管理系统的网站建立了一个后台,他们的会员资格必须每个月更新一次。
此时我有一系列上个月付费的所有userId,我想查询他们尚未付款的女巫。
恢复:(1,2,3,4,5,6,7和8)已经支付了上个月的会员资格,本月只有(1,2)已经续订。所以我想回声(3,4,5,6,7和8)。
如何在单个查询中完成此操作?如果有帮助,我使用的代码与此非常相似:
SELECT userId FROM membership
WHERE userId IN ($array) AND MONTH(payement) = MONTH(NOW())
答案 0 :(得分:1)
首先,您必须使用implode()
:
<?php
$str = implode(",",$array);
$que = "SELECT userId FROM membership WHERE userId IN ($str) AND MONTH(payement) = MONTH(NOW())";
?>
答案 1 :(得分:0)
我假设您的数组已经填满了查询。然后你可以使用:
因此,您选择上个月支付的所有用户ID以及不在本月查询中的用户ID(如果这样做: - ),
我建议你使用php来确定月份。 所以你的代码看起来像是:
$previousMonth=date('m', strtotime(date('Y-m')." -1 month"));
$thisMonth=date('m');
$sql = "SELECT userId FROM membership WHERE MONTH(payement) =".$previousMonth. " AND userId NOT IN (SELECT userid FROM membership WHERE MONTH(payement) = ".$thisMonth.";";