mysql not in 数组_PHP Mysql NOT IN数组仅影响数组中的第一个结果

bd96500e110b49cbb3cd949968f18be7.png

So I have a query to create an array of ID's that I do not want to be included in the data that populates my Select List. Both the select list and the array of excluded ID's are being pulled from a mysql database. The problem I am having is that when I echo out $exclude, it appears correctly in a comma separated list (1,2,3). However, when I attempt to add it in my NOT IN statement, it is only excluding the first number. I need it to exclude the entire array. Any ideas?

$excludeSql = "SELECT member_id FROM appointments WHERE joint_id = '$jointid'";

$excludeData = mysql_query($excludeSql, $link);

while($excluderow = mysql_fetch_array($excludeData)){

$excludearray[] = $excluderow['member_id'];

}

$exclude = implode(',',$excludearray);

echo $exclude;

?>

--Select--

$memberSql = "SELECT id, firstName, lastName FROM members WHERE id NOT IN('".$exclude."') && compid = '$compid' ORDER BY lastName ASC";

$memberResult = mysql_query($memberSql, $link);

while($memberRow = mysql_fetch_assoc($memberResult)){?>

解决方案

You don't need the quote here:

WHERE id NOT IN('".$exclude."')

^ ^

Also you could achieve the same result in one query:

SELECT

id,

firstName,

lastName

FROM members

WHERE id NOT IN

(SELECT

member_id

FROM appointments

WHERE joint_id = '$jointid')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值