2015-06-16 11 views
4
$query = "SELECT sum(DAILYTIME) FROM $mytable LIMIT 5"; 

該語句選擇和限定爲5行,但是如何根據某一行來做到這一點。例如,我想使用第10行作爲起點,並在該行之下5行(包括同一行的5行)。如何選擇總數限制到X號碼mysql

聲明如何將需要的,因爲如果我這樣做WHERE DAY = '$day' LIMIT 5 不會總結所有的5行,只是1

+0

嘗試在限制之前添加'GROUP BY DAILYTIME',應該可以工作。或者使用子查詢。 https://dev.mysql.com/doc/refman/5.0/en/subqueries.html –

+1

LIMIT還可以處理額外的參數。 I.e .:'LIMIT 5,10' –

+1

LIMIT與想要的無關;在這種情況下,它只會意味着你會根據你的GROUPING標準返回不超過5個總數,這(因爲沒有)只會導致一行開始。 – Uueerdo

回答

2

通過添加where子句與>=運營商,也將選擇所有後續行。使用以下查詢:

$query = "SELECT sum(DAILYTIME) FROM $mytable WHERE DAY >= '$day' LIMIT 5"; 
+1

我欠你一些啤酒人 – nonaxanon

+0

我總是爲此打開;-) –

+0

此查詢的LIMIT子句是多餘的。該查詢最多隻返回一行,並且LIMIT子句對聚合返回的值沒有任何影響。 (LIMIT'會產生影響的唯一方法是如果我們要指定'LIMIT 0'或'LIMIT m,n'(m> 0),所以沒有行被返回。) – spencer7593

0

這會給你第10到第14行「行」的總和;但是,由於沒有ORDER BY,因此不能保證子查詢的結果行中的表的哪些行。

SELECT sum(DAILYTIME) 
FROM (
    SELECT DAILYTIME 
    FROM $mytable 
    LIMIT 9, 5 
) AS `rows10to15` 
;