mysql找出彼此插入后的两行

时间:2013-11-05 07:37:41

标签: mysql sql

有没有办法找出彼此插入的两行?

我有这样的表:

表1

 ID   |     column1                 |     column2 |
    ---------------------------------------------
 1    | '2013-11-04 13:47:03'       |       A     |
 2    | '2013-11-04 13:47:03'       |       B     |
 3    | '2013-11-04 13:47:13'       |       Y     | 
 4    | '2013-11-04 13:47:13'       |       X     | 
 5    | '2013-11-04 13:47:20'       |       B     |  
 6    | '2013-11-04 13:47:23'       |       Z     |
 7    | '2013-11-04 13:47:23'       |       X     |
 8    | '2013-11-04 13:47:26'       |       X     |  
 9    | '2013-11-04 13:47:26'       |       Z     |
 10   | '2013-11-04 13:47:35'       |       B     | 
 11   | '2013-11-04 13:47:38'       |       A     |
 12   | '2013-11-04 13:47:38'       |       B     | 
 13   | '2013-11-04 13:47:40'       |       A     | 
 14   | '2013-11-04 13:47:41'       |       X     | 
 15   | '2013-11-04 13:47:41'       |       Z     |  

在上表中我想找到“A,B”之后发生的确切时间,就像“A”是“B”发生后的第一行和下一行。 然后我将“A”的日期时间保存为开始时间。

之后我检查“X,Z”是否发生如上所述,此“X,Z”必须在时间“A,B”之后发生并保存“Z”时间为结束时间。

然后我得到开始和结束时间之间的平均时间。

1 个答案:

答案 0 :(得分:1)

您可以使用自动TIMESTAMP列集在插入时使用默认值CURRENT_TIMESTAMP。使用此列,您始终可以看到创建记录的时间。

CREATE TABLE `t1` (
    `date_created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在大多数应用程序中,通常会在包含时间相关信息的表格上显示date_createddate_updated列(博客:文章,评论,用户;电子商务:产品,购物车,订单) ,发票,客户)。

CREATE TABLE `t1` (
    `date_created` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    `date_updated` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);