2011-02-13 44 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;