私は、特定のユーザの使用を撤回するために以下のクエリを使用したが、今はmysqlがテーブルのすべてのレコードを合計するという問題があります。すべてのレコードの合計を取得するのではなく、合計が500を超えるとクエリを停止するだけです。私は3つの異なる方法で疲れました。誰でも私に結果を達成するための最良の方法を提案することができます。それは500を超えるまで累計を示しmysqlクエリの最適化(sum関数を使用)
第一版クエリ
SELECT
(SUM(radacct.acctinputoctets) + SUM(radacct.acctoutputoctets))/8388608 AS total_usage
FROM `radacct`
WHERE username ='fktmbishals'
第二版クエリ
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
あなたのすべてのクエリは何か異なることをしています....あなたが望むものを知りましょう....あなたが試みたよりも良いオプションがあるかもしれません。 –