作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑一个带有 datetime
字段的 MySQL 表。我想选择与下一个或上一个 datetime
值之间的时间最远的行。例如,如果存在具有以下值的记录:
1 2012-10-17 12:00
2 2012-10-16 12:00
3 2012-10-14 12:00
4 2012-10-08 12:00
5 2012-10-03 12:00
6 2012-10-01 12:00
因此,最“孤立”的记录是记录 #4,因为它与最近的记录相距 5 天。
请注意,对于“最孤立的”,可能存在也可能不存在联系,在这种情况下,可能会返回任何联系行,也可能会返回所有联系行。此外,虽然该示例显示的记录具有按顺序排列的 datetime
值,但在实际数据集中可能不一定如此。
最佳答案
如果您的表定义为 foo (id, time) 您可以使用以下 sql:
SELECT t1.id FROM foo t2
INNER JOIN foo t1 ON t1.id=t2.id+1
INNER JOIN foo t3 ON t3.id=t1.id+1
WHERE timestampdiff(day,t1.time,t2.time)+timestampdiff(day,t3.time,t1.time)=
(SELECT max(timestampdiff(day,t1.time,t2.time)+timestampdiff(day,t3.time,t1.time))
FROM foo t2 INNER JOIN foo t1 ON t1.id=t2.id+1
INNER JOIN foo t3 ON t3.id=t1.id+1)
获取所有“最孤立”的条目。如果您只需要一个条目,您可以随时添加一个limit 1
。
另请注意,这里我们假设条目按时间戳排序。如果条目没有按时间排序,您可以创建一个 View 来对它们进行排序。
关于mysql - 最孤立的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944381/
如果数据很大,我正在使用 orphan 属性在打印时添加分页符它在 chrome 和 IE 中工作但在 FireFox 中不支持. docprint.document.write('
如果我从“Default.aspx”等进行 AJAX PageMethod 或 WebMethod 调用,然后在初始 PageMethod 返回之前快速导航到另一个页面(例如“Settings.asp
我是一名优秀的程序员,十分优秀!