我在SO上看到过类似类型的问题,但是,我无法找到针对我特定问题的解决方案。(仅供参考,这些不是我的真实专栏,只是一个简短的示例)。
我有一个基本表:
`my_table`
user_1 user_2 timestamp
======================================================
23 25 2012-08-10 22:00:00
24 22 2012-08-10 19:00:00 <=== I would like to return this row
24 22 2012-08-10 17:00:00
21 17 2012-08-10 15:00:00
因此,我想做的是能够:
1) Select the "newest" row, based on timestamp AND
2) Select the 'user_2' column when given a value.
我已经尝试过类似的东西:
SELECT *
FROM my_table
WHERE user_2 = 22
AND timestamp = (
SELECT MAX( timestamp )
FROM my_table )
LIMIT 1
但这不会返回我要查找的行。修复此查询的任何帮助都将非常有用。
非常感谢。
SELECT * FROM my_table -- standard stuff
WHERE user_2 = 22 -- predicate
ORDER BY timestamp DESC -- this means highest number (most recent) first
LIMIT 1; -- just want the first row
编辑:
顺便说一句,如果您想知道为什么原来的查询不起作用,让我们分解一下:
my_table
…中选择一些东西user_2
= 22timestamp
= (有些值,暂时搁置)现在,回到该timestamp
值,它来自您的子查询:
SELECT MAX( timestamp ) FROM my_table
请注意,此子查询不限制基于的任何行,user_2
而是询问 整个表中 的最大时间戳是多少。该最大时间戳是上表中的第一个时间戳:(用户_1 =
23,用户_2 = 25,时间戳= 2012-08-10 22:00:00)。
因此,让我们将其插入顶级查询:
my_table
…中选择一些东西…您会看到没有这样的行。
问题内容: 对于某些Hibernate实体,我们需要存储其创建时间和上次更新时间。你将如何设计? 你将在数据库中使用什么数据类型(假设使用MySQL,可能与JVM时区不同)?数据类型是否支持时区? 你会在Java中使用什么数据类型(Date,Calendar,long,…)? 你将由谁负责设置时间戳(数据库,ORM框架(hibernate)或应用程序程序员)? 你将使用哪些注释进行映射(例如@Te
问题内容: 我在玩JPA(具体来说是Eclipselink)。下面的实体具有一个时间戳,应该在该实体上次更新时反映该时间戳。 每次更改此实体时,使JPA自动更新该时间戳的策略是什么? 如果我还想要一个“创建”时间戳记,该时间戳记仅在实体首次保留时设置,而永远不允许再次更改,该怎么办? 问题答案: 使用@PrePersist和@PreUpdate批注并编写您自己的事件侦听器。 详细了解一下此答案。它
问题内容: 我在这里看到了类似的问题,但是没有一个问题帮助我解决了这个问题。 我有一个表可以说测试(使用mysql MyISAM) 测试具有以下架构: 现在,当前登录的用户每次访问测试页时,都会向该表添加记录,以记录访问过的用户ID,并且每次使用TID自动访问的用户访问的一些数据以及日期和时间。 然后我有一个后端管理页面,在这里我可以看到哪个用户访问了测试页面,多少次,数据以及何时。基本上,它是一
问题内容: 如何从MongoDB集合中的时间(HH:MM:SS.Milisecond)值大于零的日期字段中选择记录,并通过保持日期的时间(HH:MM:SS)值为零来更新记录值是否与Python脚本中的现有值相同? 当前数据如下所示- 如何在Python脚本中仅选择第4、5、6和7行,并使用时间戳将其更新为零? 更新后,数据如下所示- 问题答案: 最好的方式来更新您的文件,并在时间使用日期时间模块,
问题内容: 我有一张表: 我需要选择具有最大更新值的id和val。因此,对于此表,结果应为: 问题答案: 这需要在与主表连接的子查询中进行汇总。
问题内容: 我有一个名为列是一个。因此,例如,平均外观值可能是:。我希望能够搜索并返回一天中特定时间的所有结果,而不考虑日期。 例如,如果我在列中搜索值,它将返回: 有什么想法吗? 问题答案: 您可以使用HOUR()函数: las,一旦您查询了几千行,该查询的性能将非常 糟糕 -函数不可索引,因此每次运行此查询时都会进行全表扫描。 在类似情况下的操作:创建了另一列,对其进行了索引,并在插入时填充了