I\'ve got table structure as follows:
Field Type
id int(11) AI
user varchar(64)
date timestamp
key int
This seems to be one of those rare cases where using a CURSOR is truly the most appropriate, and performant option.
However, if performance is not a consideration, you could do a correlated subquery, like the following
SELECT *, second_time - first_time
FROM
(
SELECT T.user,
T.date AS first_time,
(SELECT MIN(S.date)
FROM My_Table S
WHERE S.user = T.user
AND S.date > T.date
) AS second_time
FROM My_Table T
) G
WHERE (second_time - first_time) < 1300
This will run very slowly on large data sets.