我有一张地址表... 街道地址,城市,州和压缩 我需要街道地址城市州和一列任何想法拉链
答案 0 :(得分:6)
你可以连接它们
SELECT CONCAT(address, ' ', city, ', ', state, ' ', zip) FROM table;
如果您希望将来或其他用户更方便,请考虑创建执行此操作的表格视图,并将其作为名为location的列等提供。
答案 1 :(得分:2)
如果您需要将合并后的值存储在表格中,请使用
UPDATE address SET bigcolumn = CONCAT(streetaddress, ', ', city, ', ', state, ' ', zip);
答案 2 :(得分:2)
这会对您有所帮助:string-functions
将列值与所需的分隔符连接。 因此,您的案例中的示例查询可以是:
SELECT CONCAT(street-address, '\n', city, ', ',state,'-',zip) as full_address FROM table;
答案 3 :(得分: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;