嘿大家好,我回來了,期待更多的光彩。我有兩個表:複雜的MySQL查詢通訊隊列
- 通訊 - 每一行都包含「從」頭一個「身份證」,「主題」,「體」 &爲電子郵件
- newsletter_queue - 每一行包含一個「身份證」,'電子郵件」地址,‘日期’添加到隊列和‘newsletterid’
我的目標是建立一個MySQL查詢,可以從拉x行量‘newsletter_queue’,然後他們按自己的‘newsletterid’,而使用GROUP_CONCAT(或其他任何工作)將所有電子郵件轉換爲字符分隔的字符串,我將使用PHP進行分析。我想讓他們在一起的原因是因爲我使用的郵件程序庫(swiftmailer)接受一個包含批量電子郵件的數組。另外,如果可能的話,將兩個表連接在一起會非常簡單,從而避免了第二個查詢。
這是我到目前爲止有:
SELECT GROUP_CONCAT(email ORDER BY date ASC SEPARATOR '|'), newsletterid, date
FROM newsletter_queue
WHERE status='0'
GROUP BY newsletterid
LIMIT 125
我的問題是,LIMIT 125被應用到已經連接在一起行,使之無用,由於這樣的事實,我試圖限制數量一次發送的電子郵件總數,而不是唯一的時事通訊。如果任何人都能指引我走向正確的方向,我會非常感激。如果你寫下這個例子,那也很棒。
有沒有什麼好的理由來連接SQL中的郵件?特別是因爲無論如何都需要使用PHP後處理。從數據庫中提取非結構化的字符串是次優的,恕我直言。 – Tomalak 2009-05-27 06:50:05
@Tomalak,好吧,它使我無需重複while()循環來將他們的電子郵件添加到數組中。現在它的設置方式,while()循環只爲每個獨特的時事通訊循環一次,我使用explode()將電子郵件轉換爲數組,並使用batchSend()函數一次發送它們,而不是比爲每個電子郵件地址打開一個smtp連接。你會推薦另一種方法嗎? – bloudermilk 2009-05-27 23:06:13