哪个查询更可取以及为啥

Posted

技术标签:

【中文标题】哪个查询更可取以及为啥【英文标题】:which query is more preferable and why哪个查询更可取以及为什么 【发布时间】:2010-01-15 00:11:58 【问题描述】:

我正在尝试自学 SQL,当然我想遵循最佳实践。

我创建了两个查询来查找最新记录:

select * from AppSurvey where 
DateLastUsed >= ( SELECT MAX(DateLastUsed) FROM AppSurvey)

select top 1 * from AppSurvey order by DateLastUsed desc

其中一种方法比另一种更有效还是真的很重要

【问题讨论】:

如果 DateLastUsed 不是唯一的,这实际上是两个不同的查询。所以,从苹果到橘子。顶部的可以选择许多调查,而底部的只能抽样一项。 第一个查询可能返回多条记录,所以它们实际上并没有做同样的事情。在 MS-SQL 中,第二个查询更高效 【参考方案1】:

此网站上有一篇与您想要了解的内容类似的帖子。

For autoincrement fields: MAX(ID) vs TOP 1 ID ORDER BY ID DESC

首选答案似乎是:“理论上,他们将使用相同的计划并几乎同时运行”

【讨论】:

【参考方案2】:

如果您的 DateLastUsed 列不是唯一的,第一个可能会得到多行。

【讨论】:

以上是关于哪个查询更可取以及为啥的主要内容,如果未能解决你的问题,请参考以下文章

哪个更可取:lambda 函数或嵌套函数('def')?

为啥使用 Celery 运行计划任务比使用 crontab 更可取?

为啥在片段中从 char* 转换为 std::string 比转换为 const char* 更可取?

DateTime.hasvalue vs datetime == null,哪个更好以及为啥[重复]

主键中允许 NULL - 为啥以及在哪个 DBMS 中?

特征重要性可以用来解释模型预测的“为啥以及哪个特征有贡献”?