Лучше всего, чтобы добавить таблицу обновлений к вашей схеме.
Скажем, ваша основная таблица называется info
и имеет эти столбцы.
info_id INT (autoincrementing)
info_val VARCHAR(250)
info_last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
Затем вы добавляете таблицу под названием info_updates
. Она имеет следующие столбцы:
info_update_id INT (autoincrementing)
info_id INT (points to info table row)
info_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP
info_why VARCHAR(250) (text describing update, if you like)
Затем, каждый раз, когда вы вставляете или обновить строку в info
, вы также вставить строку в info_updates
.
Тогда вы будете иметь возможность получить историю обновления с самыми последними обновлениями первой, как это:
SELECT info.info_id, info.info_val,
GROUP_CONCAT(info_updates.info_update ORDER BY info_updates.info_update) updates
FROM info
JOIN info_updates ON info.info_id = info_updates.info_id
GROUP BY info.info_id, info.info_val
ORDER BY MAX(info_updates.info_update) DESC
Если вы копить ваши метки времени обновления в текстовое поле, разделенных запятыми, не все это хороший материал для поиска будет работать правильно.
Это может показаться дополнительной работой. Но текстовые поля, разделенные запятыми, вызывают гораздо большую дополнительную работу в долгосрочной перспективе.
Профессор Ричард Снодграсс написал прекрасную книгу на эту тему и сделал ее доступной. Developing Time-Oriented Database Applications in SQL.
no. дата - это единственная дата. –
Я не думаю, что это возможно, и почему вам нужно использовать поле DATE вместо Varchar ?. –
невозможно, дата имеет конкретный формат – Beginner