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

すべてのレコードをカウントし、表示用に特定の数のみを取得(LIMIT)する方法は?

    MySQLは、この種のことを特別にサポートしています。まず、SQL_CALC_FOUND_ROWSを含めます SELECTで:

    SELECT SQL_CALC_FOUND_ROWS *
    FROM Badges
    WHERE UID = '$user'
    ORDER by Date DESC
    LIMIT 10 -- Or whatever
    

    次に、行を引き出して、すぐに FOUND_ROWS() このように:

    SELECT FOUND_ROWS()
    

    LIMIT句を考慮せずに、元のクエリに一致した行数を取得します。

    これはMySQL固有ですが、2つのクエリを実行するよりも少し速いはずです。



    1. MySQLクエリでのテーブルの作成とブリッジ

    2. テーブル間のMySQL自動インクリメント

    3. SELECT DISTINCTが指定されている場合、ORDERBY項目は選択リストに表示される必要があります

    4. 重複キー:複数列の一意の制約