1

我有一个包含三列的表:

  `id` int(11) NOT NULL auto_increment    
  `tm` int NOT NULL    
  `ip` varchar(16) NOT NULL DEFAULT '0.0.0.0'

我想运行一个查询,检查是否在一分钟内记录了相同的 IP,然后删除除一个之外的所有条目。

例如,我有下面的两行。

id=1 tm=1361886629 ip=192.168.0.1
id=2 tm=1361886630 ip=192.168.0.1

我只想在数据库中保留一个。

我已经阅读了许多其他删除重复/部分重复条目的问题,但我正在寻找一种方法来比较 Unix/纪元时间的最后两位数字,并根据该数字加上 IP 删除除一个之外的所有数字。

任何帮助深表感谢。

4

1 回答 1

1

您可以CAST在 mysql 中使用删除最后 2 位数字

SELECT CAST( tm AS CHAR( 8 ) )

这将只选择时间戳中的前 8 位数字,并允许您查找重复项

如果您只想知道最后 2 位数字是什么

SELECT RIGHT(CAST( tm AS CHAR( 10 ) ), 2)

这将仅从每个时间戳中选择最后两位数字

于 2013-02-26T17:23:05.460 回答