这是我的表结构:
monResults:
id Int(10)
monDateTime日期时间()
typeId int(10)
我需要一个查询来获取所有monResults,这些monResults具有相距不到1分钟且具有相同typeId的连续monDateTime。我希望能够得到X个这样的事件。大多数情况下,我不知道如何添加条件使连续结果相隔不到1分钟。
答案 0 :(得分:0)
你有没有尝试过这样做?是否要传入typeId,并让查询返回所有不到一分钟的ID?
问题是你只需得到一个排序列表,你仍然需要在一个程序中解析它,就像你会得到的一样,在一个非常人为的例子中,monDateTime是一个单位时间戳的变体,为了便于打字。
id=1, monDateTime=3
id=5, monDateTime=57
id=2, monDateTime=63
id=3, monDateTime=120
因此,您需要在应用程序中确定前两个是一个组,但第二个和第三个是一个组,因此id = 2和5分为两组。
如果你在一个程序中循环并说明我希望所有id都在特定id
和typeId
的一分钟之内,那么你可以在程序中组织它。
然后你可以使用TimeDiff
函数减去你的特定id和数据库中的id:
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timediff
答案 1 :(得分:0)
这个问题有一些答案可能会引导你朝着正确的方向前进:
答案 2 :(得分:0)
SELECT *
FROM (
SELECT (@typeID = typeID AND @pdt >= monDateTime - INTERVAL 1 MINUTE) AS con,
@typeID := typeID,
@pdt := monDateTime
FROM (
SELECT @typeID := NULL,
@pdt := NULL
) vars,
mytable
ORDER BY
monDateTime
) q
WHERE con