簡體   English   中英

mysql-將列合並為一個大列

[英]mysql - combining columns into one big column

我有一個地址表...街道地址,城市,州和郵政編碼我需要街道地址城市州和在任何列中添加郵政編碼

你可以緊緊抓住他們

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

如果您想將來為您或其他用戶提供更多便利,請考慮創建執行此操作的表視圖,並將其提供為名為location的列或類似名稱。

如果需要將合並的值存儲在表中,請使用

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

這將對您有幫助: 字符串函數

將列值與所需的分隔符連接在一起。 因此,您的情況下的示例查詢可以是:

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

我也不建議您將所有這些列都放在一列中。 您可能以后要按城市或州或其他單獨的列之一進行搜索,將它們作為單獨的字段進行搜索會容易得多。 您可以按照前面建議的那樣,將字段作為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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM