MySQL附加字符串

时间:2011-04-02 17:57:15

标签: php mysql prepared-statement

如何将字符串附加到现有表值的末尾?假设我有下表:

enter image description here

让我们说玛丽亚安德斯不仅住在柏林,还住在东京。如何将字符串
“Tokyo”附加到ContactName = Maria Anders的City列?

附:我希望能够附加到null值。因此最终只有一个城市。

2 个答案:

答案 0 :(得分:16)

使用CONCATIFNULL的组合(处理NULL案例):

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

然而,追加似乎有误。如果您想要多个城市值(多对多关系),您应该有一个单独的城市表和一个单独的人 - 城市关系表。阅读database normalisation

答案 1 :(得分:2)

您不应该在表格内嵌套列表。我首先创建一个表,将每个人与一个唯一的ID相关联。这一点非常重要,如果您有其他人在路上使用相同的名称。

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

然后让每个位置与ID相关联 - 例如:

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

然后,当您需要为同一个人添加新位置时,您只需添加其他值即可。例如:

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

获取数据并在您的应用程序/网站中创建列表将变得简单,并且更加灵活。查看有关通过Google或其他人建议的地方建立一对多关系表的信息。