MySQL查询表列的变化

时间:2019-03-25 12:33:02

标签: mysql

我的数据库中有一张大表,我需要在其中跟踪列(序列和日期)中的更改。换句话说,跟踪序列号更改的日期。这是结构:

pvs
-----

- id (int increment)
- serial (varchar)
- pos_id (int)
- fecha (datetime)

Pos_id是位置,因此也很重要。

A query on that table

我想我可以使用PL,但是它已经很慢了,因为它只是查询信息而没有任何过滤。

编辑:

我将与日期相对应的Excel文件上载到数据库,因此“更新时”解决方案对我而言不可行。

当我说一列中的更改时,是指“序列”列中的更改。

编辑2:

如您所见,有四列,“序列”列是重复的。观察结果是,此列针对该pos_id(代表已安装的设备,并且损坏)等超时变化,因此我需要获取发生更改的行。例如,在图片中,我们假设以后在id 2900000中将序列更改为另一个代码,例如312555654。输入为:

id | serial | pos_id | fecha
2900000 | 312555654 | 5 | 2018-04-25 00:00:00

因此,我需要在一个查询中获得所有这些更改,并以这种方式更新其他表。如果可能的话。我可以使用pos_id作为参数。

1 个答案:

答案 0 :(得分:0)

稍后我想出了答案:

SELECT min(id), SERIAL, pos_id, MIN(fecha)
FROM pvs 
GROUP BY SERIAL, pos_id
ORDER BY MIN(fecha) DESC;

因此,每次更改序列号时,它将向我显示新序列号出现的第一个日期。