0

次のクエリによって返される行の総数を数えたいと思います。

SELECT table1.*, COUNT(table2.fk) * (100/18) AS 'number' 
FROM table1 INNER JOIN table2 ON table1.pk = table2.fk
WHERE table1.Street LIKE '$Street%' 
AND table1.City LIKE '$City%' 
AND table1.Zip LIKE '%$Zip' 
AND table1.DOBY LIKE '%$DOBY' 
AND table1.DOBM LIKE '%$DOBM' 
AND table1.DOBD LIKE '%$DOBD' 
AND table1.Gender LIKE '$gender%' 
AND table2.year>= 2004 
AND table2.type IN ('AA', 'AB', 'AC') 
GROUP BY table2.fk
HAVING (COUNT(table2.fk) * (100/18)) >= '$activity' 
ORDER BY DOBY, DOBM, DOBD ASC

クエリは、table1の主キーがtable2の外部キーとして発生する回数をカウントし、固定量に基づいてパーセンテージ(「数値」)を計算します。十分に機能しますが、ページネーションスクリプトで見つかったレコードの総数を取得するのに問題があります。誰かがいくつかの提案や解決策を提供できれば幸いです。

4

2 に答える 2

0

Itay Moavの言うことを踏まえると、プログラミング言語にはその関数の関数が必要found_rowsです。関数のドキュメントに従って、キーワードが存在しない場合は、キーワードを含むSELECTステートメントの行数を返します。LIMITLIMIT

そうでない場合はSELECT、データベースに対して別のクエリを実行できますSELECT FOUND_ROWS();。同じ情報が返されます。

于 2012-04-08T03:28:52.677 に答える
0

あなたはすることができますSQL_CALC_FOUND_ROWS(正確な構文についてはグーグル)
そして次に使用するSELECT FOUND_ROWS() AS total

于 2012-04-08T03:12:17.183 に答える