MySQL php数组 - 从数组中查找与查询不匹配的值

时间:2013-06-27 22:58:28

标签: php mysql mysqli

我目前正在开发一个实时网站,需要在实施之前仔细检查我的代码。我不能在jsfiddle上这样做:(

我有两个变量:

$user_id (users user id - one only)
$job_id (an array of job ids that could number from 0 to numerous)

我需要做的是检查数据库中是否有与job_iduser_id匹配的entires。如果没有匹配,那么我需要返回不匹配的每个job_id

$job_id=join(',',$job_id);
$query="SELECT job_id FROM table WHERE job_id NOT IN('$job_id') AND user_id='$user_id'";
....do myslqi query etc
while($row=mysqli_fetch_array($result))
{
    $no_match[]=$row['job_id'];
}

我不是100%确定这是否会返回没有相关user_id的job_id。我的同事建议循环遍历每个job_id并对每个job_id执行单独的查询,但这对我来说听起来真的很糟糕。

我也有兴趣找到任何资源来快速测试远离实时网站的mysql查询 - 链接将不胜感激:)

2 个答案:

答案 0 :(得分:0)

此查询返回的行没有您指定的作业ID,但具有user_id,

 $query="SELECT job_id FROM table WHERE job_id NOT IN('$job_id') AND user_id='$user_id'";

如果您想要没有用户ID的作业ID,请使用。

 $query="SELECT job_id FROM table WHERE job_id IN('$job_id') AND user_id!='$user_id'";

答案 1 :(得分:0)

我认为这可以在一个查询中完成:

SELECT job_id
FROM table
WHERE user_id = '$user_id'
AND NOT EXISTS 
  (SELECT *
   FROM table
   WHERE user_id = '$user_id'
   AND job_id IN ($job_id))