Nästan EXAKT samma fråga besvaras här . Utgångspunkten är att du skulle behöva en annan kolumn för att fungera som en löpande summa för kunden i fråga...
Jag skapade tabeller och simulerade data exakt som dina resultat och kom fram till DINA exakta resultat... Problemet var på något sätt MySQL tillämpade kriterierna TVÅ GÅNGER per rad och förstod inte hur eller varför... Jag misstänker STARKT att det var en bugg, men kan inte beskriva det. Hur som helst, jag har en fix som tvingar fram en inre "PreQuery" som bas, och returnerar ALLA poster från den med @SQLVars och sedan tillämpar en WHERE-sats från det...
select properSummed.*
from
( select
o.orderid,
o.price,
@RunningTotal := @RunningTotal + o.price as UnpaidSoFar
from
orders o,
(select @RunningTotal := 0 ) sqlvars
where o.ownerid = 1
and o.paymentstatus = 'unpaid' ) properSummed
where
properSummed.UnpaidSoFar <= 50