Così sto genere di stumped qui, ho una messa a punto tabella come questaLimite SQL dalla somma del valore della fila
+-----------+------+
| Timestamp | Size |
+-----------+------+
| 1-1-13 + 10.3 +
+-----------+------+
| 1-3-13 + 6.7 +
+-----------+------+
| 1-5-13 + 3.0 +
+-----------+------+
| 1-9-13 + 11.4 +
+-----------+------+
e mi chiedo se c'è un modo per eseguire una query come questa
SELECT * FROM table ORDER BY timestamp ASC LIMIT BY (SUM(size) <= 20.0);
Questo dovrebbe afferrare le prime tre righe, perché la somma della dimensione in delle prime 3 righe è 20. Tuttavia, potrebbe non essere sempre 3 righe eguagliare 20. volte la prima fila potrebbe avere un valore di 20, e in tal caso, dovrebbe solo afferrare il primo.
Sono già consapevole del fatto che è possibile calcolare rapidamente la somma in PHP dopo l'esecuzione della query, ma sto cercando di farlo con MySQL.
Così si desidera un totale corrente? –
In ANSI SQL si selezionano le righe di alcune tabelle (relazioni) in base a criteri che corrispondono a OGNI SINGOLO RIGA di output. Nel tuo esempio, i criteri cambiano ad ogni nuova riga. Non sono sicuro, ma penso che richiederà la funzione PL/SQL. Nota come funziona ORDER: a seconda dell'utilizzo della sottoquery, otterrai risultati diversi, a seconda se vuoi che l'output sia ordinato, o input che deve essere abbinato alla tua condizione, e l'ORDINE non dovrebbe essere usato in questo modo. LIMIT (o OFFSET) probabilmente dovrebbe essere usato per il numero limite semplice di righe in uscita, non per espressione. –