获取列中的第一个和/或最后一个记录

时间:2011-12-23 06:18:31

标签: sql

从最高效率到最低效率的以下SQL语句的命令是什么?

注意:让语法与语言无关(即在适当的位置使用TOP 1而不是LIMIT 1)。假设table_name是表的名称,column_name是列的名称,id是具有主键的列的名称,并且表具有数万个记录。

  1. SELECT FIRST(column_name) FROM table_name
  2. SELECT column_name FROM table_name LIMIT 1
  3. SELECT column_name FROM table_name WHERE id=1 --assumes the first id is 1
  4. SELECT column_name FROM table_name WHERE id=(SELECT MIN(id) FROM table_name)
    1. SELECT LAST(column_name) FROM table_name
    2. SELECT column_name FROM table_name ORDER BY id DESC LIMIT 1
    3. SELECT column_name FROM table_name WHERE id=(SELECT COUNT(id) FROM table_name) --assumes no values have been skipped
    4. SELECT column_name FROM table_name WHERE id=(SELECT MAX(id) FROM table_name)
    5. 我不知道如何对这些语句进行基准测试,但我的 guess 是获得第一条记录的2,3,1,4和获得最后一条记录的3,2,1,4。

1 个答案:

答案 0 :(得分:1)

我猜不过; FIRST和LAST是分组操作。要使查询引擎获得结果,首先需要收集数据。

其他人只需返回它找到的第一行。 如果'id'上有一个索引,那么它的下降并不是很贵。