我有一個情況,我使用下面的查詢來退回某些用戶的使用情況,但問題是,現在mysql會從表中總結所有記錄。而不是獲得所有記錄的總和,我只想在總和大於500時停止查詢。我累了3種不同的方式。任何人都可以建議我哪一種是達到結果的最佳方式。mysql查詢優化(使用求和函數)
1版查詢
SELECT
(SUM(radacct.acctinputoctets) + SUM(radacct.acctoutputoctets))/8388608 AS total_usage
FROM `radacct`
WHERE username ='fktmbishals'
第2版查詢
SELECT
if ((SUM(radacct.acctinputoctets) + SUM(radacct.acctoutputoctets))/8388608 > 500 , 500, 0) AS total_usage
FROM `radacct`
WHERE username ='fktmbishals'
第三版查詢
SELECT
(SUM(temp_radacct.acctinputoctets) + SUM(temp_radacct.acctoutputoctets))/8388608 AS total_usage
FROM (
SELECT
radacct.acctinputoctets,radacct.acctoutputoctets
FROM `radacct`
WHERE username ='fktmbishals'
LIMIT 10
) as temp_radacct
表中該行用戶有多少行? –
@PaulSpiegel有超過10,00000條記錄 – Dipen
所有的查詢都做了不同的事情....讓我們知道你想要什麼....可能會有比你更好的選擇。 –