2013-11-15 50 views
1

我從客戶端繼承了一個簡單的表,它在兩個字段shipping_address和business_address中存儲兩個地址(發貨地址和商戶地址)。有一個叫做ship_to的字段,帶有枚舉('shipping','business')和一個全名字段。客戶希望輸出爲:條件CONCAT的MySQL語法取決於字段內容?

全名:地址

其中,「地址」一欄應由ship_to值回升。如果ship_to = shipping,則使用shipping_address列。如果ship_to = business,則使用business_address列。

例如:

Joe Smith: Roach Street #10, Rats Village 

如何使用CONCAT與IF條件?我猜這樣的事情,這obviusly只是一個想法:

SELECT CONCAT(full_name, ':', IF (ship_to=='shipping', shipping_address, business_address) AS contact FROM `table` 

但是,什麼是這樣做的正確的語法?

+0

你缺少一個右')'而且在SQL比較與做一個'='不''==我 – Litmus

+0

只是嘗試,但只有當我工作的前綴如果我指定table.full_name,table.ship_to,table.shipping_address和table.business_name ......我想知道這是真的需要還是它是一種服務器問題?沒有桌子,它根本不起作用。 –

+0

@AramAlvarez如果沒有指定表名前綴,會產生什麼樣的錯誤? –

回答

1

缺乏收盤)

SELECT 
CONCAT(full_name, ':', IF (ship_to='shipping', shipping_address, business_address)) as contact 
FROM TableName