2011-02-13 52 views

回答

6

你可以只是Concat的他們

SELECT CONCAT(address, ' ', city, ', ', state, ' ', zip) FROM table; 

如果你想這對你更方便的在未來或其他用戶,考慮創建做到這一點,並提供它作爲一個指定的列位置等表的視圖。

2

如果您需要將合併後的值存儲在表中,使用

UPDATE address SET bigcolumn = CONCAT(streetaddress, ', ', city, ', ', state, ' ', zip); 
2

這將幫助您:string-functions

串聯的列值與所需的分隔符。 所以你的情況爲例查詢可以是:

SELECT CONCAT(street-address, '\n', city, ', ',state,'-',zip) as full_address FROM table; 
2

我不會建議你所有的列放到一列兩種。您可能希望稍後按城市或州或其他單個專欄進行搜索,並將它們作爲單獨的字段進行搜索會更容易。您可以將字段作爲前面建議的SELECT語句的一部分進行連接,或者更好,如果它是經常進行的操作,則可以創建一個連接了字段的VIEW並選擇該視圖,或者您可以簡單地創建一個存儲函數,它將連接字段並將該函數作爲SELECT語句的一部分進行調用。像這樣的東西應該工作。

CREATE FUNCTION CONCAT_ADDRESS (p_id INT) 
    RETURNS VARCHAR(255) 
    BEGIN 
    DECLARE v_street,v_city,v_state,v_zip, address VARCHAR(255); 
    SELECT street_address, city, state, zip 
    INTO v_street,v_city,v_state,v_zip 
    FROM table WHERE id = p_id; 
    SET address = CONCAT(v_street,', ', v_city,', ', v_state,', ', v_zip); 
    RETURN address; 
END | 

一旦創建了功能,你可以用它隨時隨地爲SELECT語句的一部分,如:

SELECT id, name, surname, CONCAT_ADDRESS(id) FROM table;