2011-05-24 27 views
0

我想附加多個MYSQL數據庫字段的內容,以逗號分隔。如何追加多個數據庫抓取?

$customer_email = db_unqq($customer_row['email']); 

但我有五個不同的電子郵件字段。因此,理想的$customer_email

$customer_email = 
(
db_unqq($customer_row['email1']); 
db_unqq($customer_row['email2']); 
db_unqq($customer_row['email3']); 
db_unqq($customer_row['email4']); 
db_unqq($customer_row['email5']); 
) 

,但有一個逗號分隔每個(這樣他們就可以以電子郵件傳送)

回答

3

你可以使用group_concat()做它的服務器上,但是這是MySQL特定的行爲,長度限制爲默認的1024個字符。

SELECT ..., GROUP_CONCAT(email) 
FROM ... 
WHERE ... 
GROUP BY userID 

但是,這裏假定電子郵件存儲在您要加入的單獨表格中。

+0

他們是一個表 – Michael 2011-05-24 19:24:14

+0

阿的不同領域。在這種情況下,'SELECT ... CONCAT(email1,',',email2,',',....)'應該這樣做: – 2011-05-24 19:25:48

+0

所以當前的PHP腳本$ customer_email = db_unqq($ customer_row ['email' ]);將提供我在CONCAT中使用的所有領域? – Michael 2011-05-24 19:29:45

0

我想你的電子郵件是在一個表中,就像你說的多個字段。 他們確實應該在一個單獨的表格中。這將允許馬克B的回答 工作。您也可以對當前的模式使用CONCAT_WS。

Select CONCAT_WS(',', email1, email2, etc..) 
FROM... 
WHERE ... 

我還是建議你使用一個單獨的表給你更多的靈活性,讓您可以更容易地處理它在你的代碼而不訴諸自定義的SQL函數

+0

它看起來像這樣http://i.imgur.com/ryhpw.png – Michael 2011-05-24 19:31:48

+0

如果你可以改變它,如果你需要六個電子郵件地址會發生什麼......你的模式被破壞了。如果您有第二個表格,並且電子郵件地址通過唯一主鍵鏈接。 – badllama77 2011-05-24 20:34:37