mysql是否提供将内容附加到列的值

时间:2012-03-03 17:19:23

标签: mysql sql

我想将用户消息保存到数据库中。该消息将是数据对象(包含字段文本,发件人,日期的类),其中包含带有元数据的消息文本:

  • 用于存储对象的最具代表性的数据类型(在本例中为消息)。
  • 我可以将一个对象(消息)的内容附加到另一个对象,而不必读取列值,在内存中更新t并将其写回磁盘。 这是因为我需要为用户存储所有收到的消息,直到用户下载它们。

感谢。

3 个答案:

答案 0 :(得分:4)

如果字段可能包含空值,则以下方法有效:

UPDATE tb_messages 
SET message = CASE 
                WHEN LENGTH(message) > 0 THEN 
                  CONCAT(message, ',', 'New message content')  
                ELSE 'New message content' 
              END
WHERE user_id = 1

希望有所帮助:)

答案 1 :(得分:3)

要更新汇总新文字的字段,您可以使用CONCAT() function

示例:

UPDATE messages SET message = CONCAT(message, 'new text to add') where user_id = 1;

请注意,这仅适用于现有字段的值(在此示例中为“message”)不为NULL。

答案 2 :(得分:1)

文字的类型为TEXT
发件人应该是发件人ID,在这种情况下,它将是IntShort Int 和日期可以是DATEDATETIMETIMESTAMP类型 有关DATE类型的更多信息,请here


您的消息将以以下格式保存和检索

to_id      sender_id     message                       date
22243       22211        blah blah   blah              3/3/2012
22244       22211        blah blah   blah              3/3/2012
22245       22211        blah blah   blah              3/3/2012

我无法完全理解你的第二个问题。
如何使用concat在mysql中的列中附加数据 http://dev.mysql.com/doc/refman/4.1/en/string-functions.html#function_concat