sql >> データベース >  >> RDS >> Mysql

LIMITステートメントを無視してカウントクエリ結果を取得する

    MySQL FOUND_ROWS() 機能 以前の制限付きクエリから返される無制限の行数を検索します。

    SELECT SQL_CALC_FOUND_ROWS * FROM blah WHERE disabled = '0'  LIMIT 10,20
    SELECT FOUND_ROWS();
    

    (a)SQL_CALC_FOUND_ROWSを含める必要があることに注意してください オプション、および(b)これは別のRDBMSでは機能しない特定のMySQL拡張機能である(ただし、それぞれが これを行う独自の方法があります。)

    たとえそれがそう感じたとしても、これは必ずしも物事を行うための最良の方法ではありません。それでも2つのステートメントを発行する必要があります。非標準のSQLと、実際のCOUNTを導入しています。 ingは、単純なSELECT COUNT(*)...と同様の速度になる可能性があります。 とりあえず。私自身、標準的なやり方に固執する傾向があります。



    1. MySQLで類似した行を並べてグループ化する

    2. MySQLは、「<」または「>」演算子とともに使用された場合、DATEにインデックスを使用しませんか?

    3. Mysqlのリードおよびラグ関数

    4. LinuxからMicrosoftSQLServerにアクセスする方法は何ですか?