我想从sql server表中检索底部的10个结果。我希望它们是插入的最后10条记录,我该怎么做?
我想写select bottom 10 * from mytable
但是这不存在(afaik)。
我想要插入最后10行。 没有时间戳。
答案 0 :(得分:15)
你不能。
根本不保证select * from mytable
返回的最后10条记录将是最后插入的10条记录。没有使用的默认排序。
在反映插入顺序的相应列上需要ORDER BY
。
答案 1 :(得分:5)
如果该表有自动增量ID(主键),那么您可以这样做:
select top 10 *
from mytable
order by id desc
答案 2 :(得分:2)
https://stackoverflow.com/a/10636585/2858777
底部为(
选择前4 *
来自tbl
由n desc命令
)
选择 *
从底部
按顺序排列
数据来源:
| N | | ---- | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 |
输出:
| N | | ---- | | 7 | | 8 | | 9 | | 10 |
答案 3 :(得分:0)
在MySQL中,您可以使用select * from table LIMIT 0,10
答案 4 :(得分:0)
您可以使用触发器来完成。
将刚刚插入的行的PK保存在审计表中,同时增加某种索引(标识可能就足够了)。当行数超过10行时删除最旧的。
然后将审计表连接到原始表以获得完整的10行。