是否可以部分获取/修改字段?

时间:2016-10-23 11:10:09

标签: php mysql

我正准备收集长时间的统计数据。它将被记录在小块中,我打算将它们全部放在一个TEXT字段中,最新的第一个..像这样的排序

[date:03.01.2016,data][date:02.01.2016,data][date:01.01.2016,data]...

它会比那更频繁(只是一个样本),但应该保持足够小,以便记录数十年,但又大到足以让我想要优化它。

我正在寻找2件事

  1. 你可以追加到mysql中字段的前面吗?
  2. 您能否部分阅读该字段,例如前100个字符?
  3. 这些块将是固定长度的,因此我可以准确估计需要下载多少个字符来显示X时间段的统计数据。

1 个答案:

答案 0 :(得分:1)

你的两个问题的答案是"是":

update t
    set field = concat($newval, field)
    where id = $id;

select left(field, 100)
from t
where id = $id;

(这些假设表中有多行。)

也就是说,在关系数据库中,存储数据的方法绝对不是正确的做法。

据推测,你想要一个看起来像这样的表:

create table t (
    tId int auto_increment primary key,
    creationDate date,
    data <something>
);

(如果data应该是多列,这可能会更复杂。)

然后插入表格:

insert into t(createDate, data)
    select $date, $data;

你可以获取最新的一行:

select t.*
from t
order by tId desc
limit 1;

所有这些只是示例,因为您的问题并未提供数据的完整图片。