MySQL предлагает добавить содержимое к значению столбца - PullRequest
1 голос
/ 03 марта 2012

Я хотел бы сохранить сообщения пользователя в базе данных. Сообщение будет data object (класс с полями text, sender, date) , который содержит текст сообщения с метаданными:

  • какой тип данных является наиболее подходящим для хранения объект (в данном случае сообщение).
  • Могу ли я добавить содержимое одного объекта (сообщение) к другому объекту без необходимости читать значение столбца, обновлять t в памяти и записывать его обратно на диск. это потому, что мне нужно хранить все полученные сообщения для пользователя, пока пользователь не загрузит их.

спасибо.

Ответы [ 3 ]

4 голосов
/ 02 мая 2012

Если есть вероятность, что поле может содержать нулевое значение, работает следующее:

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

Надеюсь, это поможет:)

3 голосов
/ 03 марта 2012

Для обновления поля, объединяющего новый текст, вы можете использовать функцию CONCAT () .

Пример:

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

Обратите внимание, что это работает, только если значение существующего поля (в данном примере 'message') не равно NULL.

1 голос
/ 03 марта 2012

текст будет иметь тип TEXT
Отправитель должен быть идентификатором отправителя, в этом случае это будет Int или Short Int
, а Дата может иметь тип DATE, DATETIME или TIMESTAMP
Более подробная информация о типе DATE указана здесь здесь .


Ваше сообщение будет сохранено и получено в следующем формате

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

Я не могу полностьюпонять твой второй вопрос.
Как только вы можете добавить данные в ваш столбец в MySQL, используя concat
http://dev.mysql.com/doc/refman/4.1/en/string-functions.html#function_concat

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...