我正在嘗試寫一個電子郵件通知系統,用於我發佈的求職招聘網站,並且目前正在將一定數量的作業分組在一起,然後將電子郵件發送給候選人在沒有循環的情況下在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