2011-04-02 71 views
3

如何將字符串追加到現有表值的末尾?比方說,我有如下表:

enter image description here

而且我們說,瑪麗亞·安德斯不僅住在柏林,而且東京。如何將字符串
「東京」追加到聯繫人姓名= Maria Anders的城市列上?

P.S.我希望能夠追加到一個空值。因此最終只有一個城市。MySQL附加字符串

回答

16

使用的CONCATIFNULL組合(處理NULL情況下):

UPDATE `table` 
    SET `City` = IFNULL(CONCAT(`City`, " Tokyo"), "Tokyo") 
WHERE `ContactName` = "Maria Anders"; 

然而,追加似乎是錯誤的。如果你想要多個城市價值(多對多關係),你應該有一個單獨的城市表格和一個單獨的人與城市關係表。閱讀關於database normalisation

+2

+1我忘了你不要在MySQL中使用'+'來連接字符串。 – 2011-04-02 18:10:41

+0

好的,謝謝!我將嘗試爲人們居住的城市建立一張單獨的桌子,以便簡化關係。您的幫助非常感謝:) – 2011-04-02 18:20:43

+0

@inquisitive_web_developer:無後顧之憂;希望你得到它全部排序! – 2011-04-02 21:28:56

2

您不應該在表格內嵌套列表。我會先創建一個表格,將每個人與一個唯一的ID相關聯。如果您的其他人擁有相同的姓名,這很重要。

ID | ContactName 
----+--------------- 
23 | Maria Anders 

然後有一個ID相關聯的每個位置 - 例如:

ID | Address | City 
----+-----------+------ 

然後,當你需要添加一個新的位置爲同一人,你可以添加其他的價值。例如:

ID | Address | City 
----+-----------+------ 
23 | Foo ST. | Baria 
23 | Bar Ave. | Fooia 

獲取數據並在應用程序/網站中創建列表將很容易,而且更靈活。查看有關通過Google或其他人建議的一對多關係表的信息。