MySQL:选择最后X行,然后选择特定行

MySQL:选择最后X行,然后选择特定行,mysql,sql,Mysql,Sql,他是一个棘手的问题,除非我使用PHP——我想不惜一切代价避免使用PHP,否则我似乎无法理解。这就是我要做的 我有一个名为invoices的表。此表有一个名为paid的字段。发票被视为已付款后,此字段被勾选。现在,我有一个名为最新发票的页面,其中显示了前100张发票(已付和未付)的巨大列表 显然效果很好。但是,我想通过添加一个条件来调整此声明,该条件还将包括在最后100张发票之后,未支付的任何发票 换句话说: -前100张发票将显示已付款/未付款 -然后,任何未付发票都将在之后支付(无限制) 干杯

他是一个棘手的问题,除非我使用PHP——我想不惜一切代价避免使用PHP,否则我似乎无法理解。这就是我要做的

我有一个名为
invoices
的表。此表有一个名为
paid
的字段。发票被视为已付款后,此字段被勾选。现在,我有一个名为
最新发票
的页面,其中显示了前100张发票(已付和未付)的巨大列表

显然效果很好。但是,我想通过添加一个条件来调整此声明,该条件还将包括在最后100张发票之后,未支付的任何发票

换句话说:
-前100张发票将显示已付款/未付款
-然后,任何未付发票都将在之后支付(无限制)


干杯

您需要识别前100张发票。下面是一种通过使用
连接来实现此目的的方法:

SELECT i.*
FROM invoices i left outer join
     (select i.*
      from invoices i
      order by id desc
      limit 100
     ) i100
     on i.id = i100.id
WHERE i100.id is not null or i.paid = 0
ORDER BY id desc;

orderby
仅使用
id
。这将使第一批100人名列前茅。其余未付款的发票将按照反向
id
顺序进行。

您需要识别前100张发票。下面是一种通过使用
连接来实现此目的的方法:

SELECT i.*
FROM invoices i left outer join
     (select i.*
      from invoices i
      order by id desc
      limit 100
     ) i100
     on i.id = i100.id
WHERE i100.id is not null or i.paid = 0
ORDER BY id desc;

orderby
仅使用
id
。这将使第一批100人名列前茅。其余未付款的发票将按照反向
id
顺序进行。

您需要识别前100张发票。下面是一种通过使用
连接来实现此目的的方法:

SELECT i.*
FROM invoices i left outer join
     (select i.*
      from invoices i
      order by id desc
      limit 100
     ) i100
     on i.id = i100.id
WHERE i100.id is not null or i.paid = 0
ORDER BY id desc;

orderby
仅使用
id
。这将使第一批100人名列前茅。其余未付款的发票将按照反向
id
顺序进行。

您需要识别前100张发票。下面是一种通过使用
连接来实现此目的的方法:

SELECT i.*
FROM invoices i left outer join
     (select i.*
      from invoices i
      order by id desc
      limit 100
     ) i100
     on i.id = i100.id
WHERE i100.id is not null or i.paid = 0
ORDER BY id desc;
orderby
仅使用
id
。这将使第一批100人名列前茅。其余未支付的费用将按照与id相反的顺序支付