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