如何从表中选择除最后100个之外的所有记录

时间:2012-08-24 20:16:40

标签: mysql phpmyadmin

我有一个存储客户记录的数据库,我想设置一个cron作业来定期覆盖这些记录。我想说ORDERS中的Select *,其中ORDER_ID不在列表的前100位。每行都有自己的order_id,最新的order_id是最新的订单。如果出现一些问题,我需要保留最新的100个订单ID。感谢您的时间。

2 个答案:

答案 0 :(得分:0)

select *
from Orders
where OrderID not in (
    select OrderID 
    from Orders 
    order by OrderID desc 
    limit 100)

答案 1 :(得分:0)

你可以加入一个100最后order_id的行集 - 这将导致除了100之外的所有行在左连接集中都有NULL。

SELECT o.* from `order-table` o
LEFT JOIN
  ( SELECT order_id FROM `order-table` ORDER BY order_id DESC LIMIT 100 ) o100
ON o.order_id = o100.order_id
WHERE o100.order_id IS NULL