我正在尝试写一个电子邮件通知系统,用于我发布的求职招聘网站,并且目前正在将一定数量的作业分组在一起,然后将电子邮件发送给候选人在没有循环的情况下在MySQL中更新多行
我有我已经叫candidate_to_job表,包含candidate_id,JOB_ID和“电子邮件”布尔
我正在用新职位张贴和电子邮件被发送出去的更新该表中挣扎。当一个新的工作张贴到目前为止,我运行以下命令:
SELECT c2j.candidate_id, c2j.job_id, j.title
FROM " . DB_PREFIX . "candidate_to_job c2j
LEFT JOIN " . DB_PREFIX . "job j
ON (j.job_id = c2j.job_id)
WHERE c2j.emailed = 0
然后通过PHP I组他们在一起,所以我有一个数组看起来像这样:
$candidates = array(
1 => array(1,2,3),
2 => array(1,3),
3 => array(4,5,6)
);
与数组键值为候选ID和作业ID数组的值
我想要使用该数组 - 电子邮件发送后 - 将更新candidate_to_job表设置通过电子邮件发送到true,例如candidate_id 1将通过电子邮件发送设置为true为job_ids 1,2和3
有没有一种方法可以在一个查询中做到这一点?我查看了WHEN CASE的陈述,但我不认为这适用于这种情况?我真的不想为每个候选人运行多个查询,因为可能有数千个!
我甚至从来没有想过翻转阵列。这是一个好主意,我可以用键作为另一个数组作为工作id,然后是一个候选数组的值 - 谢谢! – Andy 2012-08-02 13:09:11
@ypercube谢谢你,我从来没有想过在'CASE'中使用'IN',SQL语法不太直观,至于什么是固定的流控制结构还是什么?预定义函数与语句语法等。 – 2012-08-02 14:36:19