我想运行这个查询
select *
from table
order asc
limit N;
其中 N 是总行数减去 10。
SELECT COUNT(*) FROM (SELECT * FROM table)
返回总数为 189 所以,在这种情况下,我希望我的限制为 179
如果顺序不重要,您可以使用以下偏移量limit
:
请注意,“直到表格结束”没有实际值。MySQL 文档建议对第二个参数使用“一些大数字”。
SELECT *
FROM table1
order by ID DESC
LIMIT 10, 999999999999999
如果您确实希望按升序排列,则可以在之后应用不同的排序:
SELECT
*
FROM
(SELECT *
FROM table1
ORDER BY ID DESC
LIMIT 10, 999999999999999) x
ORDER BY
ID ASC
不确定是否最有效,但如果您只有一个字段作为主键,这应该可以工作。
select *
from T1
where
T1.id not in (
select top(10) id
from T1
order by id desc
)
order by
id;
它将按您的订单获取最后一行,然后您可以按键排除。
编辑:
更好的是,您可以使用左外连接,而不是 not in。
select
T1.*
from T1
left outer join ( select top(10) id from Enums_Tables order by id desc ) as T2
on
T1.id = T2.id
where
T2.id is null;