求最有效的SQL语句

yinrongg 2011-01-10 11:09:49
表t_table的格式如下:
f_id f_recordtime

表里面每隔一段时间会增加一条数据,我现在想取得当前最新的记录,有没最有效快速的方法呢?
...全文
80 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
无条件为你 2011-01-11
  • 打赏
  • 举报
回复
楼主你现在在吗?加我QQ一下,我有事相求,有报酬。我QQ22227645
ACMAIN_CHM 2011-01-10
  • 打赏
  • 举报
回复
[Quote] 再加个f_recordtime between 2011-1-10 00:00:00 and 2011-1-10 23:59:59 会快些吗?[/Quote]理论上不会,因为直接走索引了。

不过你可以自己试一下,对比一下速度
yinrongg 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 acmain_chm 的回复:]
select top 1 * from t_table order by f_recordtime desc
[/Quote] 再加个f_recordtime between 2011-1-10 00:00:00 and 2011-1-10 23:59:59 会快些吗?
yinrongg 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wwwwb 的回复:]
20171011 2011-6-10 11:29:43:要得到这条记录?
[/Quote] 对的 离当前时间最近的
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
假设f_recordtime唯一且有索引
select top 1 * from tt order by f_recordtime desc
ACMAIN_CHM 2011-01-10
  • 打赏
  • 举报
回复
select top 1 * from t_table order by f_recordtime desc
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
20171011 2011-6-10 11:29:43:要得到这条记录?
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
要求结果是什么
yinrongg 2011-01-10
  • 打赏
  • 举报
回复
表就是这样的
f_id f_recordtime
20111011 2010-1-10 11:29:43
20121011 2010-2-12 11:29:43
20141011 2010-3-11 11:29:43
20151011 2010-4-11 11:29:43
20161011 2010-5-10 11:29:43
20171011 2011-6-10 11:29:43
20191011 2011-1-12 11:29:43
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看
WWWWA 2011-01-10
  • 打赏
  • 举报
回复
详细说明表结构及记录、要求结果
yinrongg 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 changechange 的回复:]
select max(f_id) from t_table

如果 f_id 是自动增加字段
[/Quote] 这样不行的 不是自增
WWWWA 2011-01-10
  • 打赏
  • 举报
回复
or
select a.* from tt a inner join (
select max(f_recordtime) as ma from tt) b
on a.f_recordtime=b.ma
changechange 2011-01-10
  • 打赏
  • 举报
回复
select max(f_id) from t_table

如果 f_id 是自动增加字段
WWWWA 2011-01-10
  • 打赏
  • 举报
回复
假设f_recordtime唯一
select * from tt a where not exists(select 1 from tt where a.f_recordtime<f_recordtime)
zxzx2733 2011-01-10
  • 打赏
  • 举报
回复
用max或DESC排序都行
wwwwb 2011-01-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 ling3wei 的回复:]
引用 10 楼 acmain_chm 的回复:
select top 1 * from t_table order by f_recordtime desc
再加个f_recordtime between 2011-1-10 00:00:00 and 2011-1-10 23:59:59 会快些吗?
[/Quote]
没有必要,测试一下其它两种方法,EXISTS、MAX,看看哪种方法快一些

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧