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

MySQL –影響を受ける行の総数に対するFOUND_ROWS()関数

    SQL Serverで、最後のステートメントの影響を受ける行の総数を取得するには、システム変数@@ROWCOUNTを使用できます。同様に、MySQLでは、FOUND_ROWS()関数を使用して見つけることができます。

    このデータセットを作成しましょう

    CREATE TABLE TEST(ID INT, NAME VARCHAR(30));
    INSERT INTO TEST(ID,NAME)
    SELECT 1,'NAME1' UNION ALL
    SELECT 2,'NAME2' UNION ALL
    SELECT 3,'NAME3' UNION ALL
    SELECT 4,'NAME4' UNION ALL
    SELECT 5,'NAME5';
    SELECT * FROM TEST;
    SELECT FOUND_ROWS();
    


    上記は2つの結果セットを返します。 2番目の結果セットは5になります(SELECTステートメントの行数はありません)。

    SQL_CALC_FOUND_ROWSをFOUND_ROWS()と一緒に使用して、テーブルの行の総数を取得することもできます。 SQL_CALC_FOUND_ROWSを使用すると、FOUND_ROWS()はLIMIT句を省略します。

    SELECT * FROM TEST LIMIT 2;

    上記は2行のみを返します。

    SELECT SQL_CALC_FOUND_ROWS * FROM TEST LIMIT 2;
    SELECT FOUND_ROWS();


    上記を実行すると、2つの結果セットが返されます。最初の結果セットは2行を返します。 2番目の結果セットは5(LIMIT句のない行の総数)を返します。

    これは本当に興味深い関数であり、日常のアプリケーションで使用できると思います。前のコメントで影響を受けた行数を知る必要があるアプリケーションを使用している場合は、コメントを残してください。


    1. OracleDatabaseでパラメータなしでPL/SQLストアドプロシージャを作成する方法

    2. MariaDBの日付と時刻の関数に使用される言語を返す

    3. SQL Serverでリンクされたデータベースサーバーを作成してクエリするにはどうすればよいですか?

    4. スプレッドシートとデータベース:切り替える時が来ましたか?パート1