Mysqli选择所有不从数组返回的东西

时间:2015-03-25 13:42:49

标签: php mysqli

我为拥有客​​户管理系统的网站建立了一个后台,他们的会员资格必须每个月更新一次。

此时我有一系列上个月付费的所有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()) 

2 个答案:

答案 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.";";