MariaDBでは、LIMIT
を使用できます クエリによって返される行数を減らす句。 FOUND_ROWS()
このようなクエリで関数を使用して、LIMIT
があった場合に返されるはずの行数を返すことができます。 条項は含まれていません。
クエリを再度実行しなくてもこの情報を取得できるため、これは便利です。
FOUND_ROWS()
関数を使用して、必要に応じて、limitedステートメントによって実際に返された行数を返すこともできます。
構文
構文は次のようになります:
FOUND_ROWS()
引数は必要ありません。
ステートメントによって返される行数を取得するには、SQL_CALC_FOUND_ROWS
を含めます。 ステートメントで、FOUND_ROWS()
を実行します 別のクエリで(最初のクエリを実行した後)。
例
関数がどのように機能するかを示す例を次に示します。
次のようなテーブルを作成するとします。
SELECT SQL_CALC_FOUND_ROWS *
FROM Pets
LIMIT 2;
結果:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | +-------+-----------+---------+---------+------------+
LIMIT
で指定されているように、2行のみが返されました 条項。
ただし、ここではFOUND_ROWS()
を使用しましょう。 LIMIT
を使用しなかった場合に返される行数を確認するには、 条項:
SELECT FOUND_ROWS();
結果:
+--------------+ | FOUND_ROWS() | +--------------+ | 8 | +--------------+
LIMIT
を使用しなかった場合、8行が返されたことを示しています。 条項。
LIMIT
なしでクエリを実行することで、これを確認できます。 条項:
SELECT *
FROM Pets;
結果:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------------+
SQL_CALC_FOUND_ROWS
も削除しました 今回は必要なかったので、声明から。
SQL_CALC_FOUND_ROWS
を省略します オプション
SQL_CALC_FOUND_ROWS
を省略した場合 オプション、FOUND_ROWS()
関数は実際のを返します 返された行数。つまり、LIMIT
の後に返された行数を返します。 条項が適用されました。
SQL_CALC_FOUND_ROWS
を使用しない同じ例を次に示します。 オプション:
SELECT *
FROM Pets
LIMIT 2;
結果:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | +-------+-----------+---------+---------+------------+
次に、FOUND_ROWS()
を実行します :
SELECT FOUND_ROWS();
結果:
+--------------+ | FOUND_ROWS() | +--------------+ | 2 | +--------------+
今回はFOUND_ROWS()
返された2
8
の代わりに 。
LIMIT
のないクエリ 条項
LIMIT
がなくても、同じ概念をクエリに適用できます。 条項。
例:
SELECT *
FROM Pets;
結果:
+-------+-----------+---------+---------+------------+ | PetId | PetTypeId | OwnerId | PetName | DOB | +-------+-----------+---------+---------+------------+ | 1 | 2 | 3 | Fluffy | 2020-11-20 | | 2 | 3 | 3 | Fetch | 2019-08-16 | | 3 | 2 | 2 | Scratch | 2018-10-01 | | 4 | 3 | 3 | Wag | 2020-03-15 | | 5 | 1 | 1 | Tweet | 2020-11-28 | | 6 | 3 | 4 | Fluffy | 2020-09-17 | | 7 | 3 | 2 | Bark | NULL | | 8 | 2 | 4 | Meow | NULL | +-------+-----------+---------+---------+------------+
次に、FOUND_ROWS()
を実行します :
SELECT FOUND_ROWS();
結果:
+--------------+ | FOUND_ROWS() | +--------------+ | 8 | +--------------+
その他のステートメント
FOUND_ROWS()
関数は、SHOW
などの他のステートメントでも使用できます。 、DESCRIBE
、およびHELP
。