2011-04-02 56 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或其他人建议的一对多关系表的信息。