0
令是这样的一个表:MySQL的:选择X最小值
CREATE TABLE `amoreAgentTST01` (
`moname` char(64) NOT NULL DEFAULT '',
`updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`data` longblob,
PRIMARY KEY (`moname`,`updatetime`)
我有一个查询查找每个独立的“moname”最古老的记录,但只有当有多个记录本“ moname':
SELECT moname, updatetime FROM amoreAgentTST01 a
WHERE (SELECT count(*) FROM amoreAgentTST01 x WHERE x.moname = a.moname) > 1
AND a.updatetime = (SELECT min(updatetime) FROM amoreAgentTST01 y WHERE y.moname = a.moname) ;
我的问题是:如何做到这一点,但选择X最古老的值? 我现在只是运行这个,删除最旧的值并重新运行它......这不是很好。
秒问题是:你怎么看待上面的查询?可以改进吗?有没有明显的不良做法?
非常感谢您的建议和帮助。
巴特
你的意思是选择不是该moname的最新行的所有行吗?或者每个moname只有一个常量X行? – NickZoic 2009-04-23 09:57:34
每个moname有恒定的X行,这些行是最老的行。 – Barth 2009-04-23 10:00:35