MySQLでLIMITを使用しているときに行の総数を取得しますか?
LIMITを使用するときに行の総数を取得するには、次の構文を使用します-
select SQL_CALC_FOUND_ROWS * FROM yourTableName LIMIT 0,yourLastValue;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです-
mysql> create table RowsUsingLimit -> ( -> Id int NOT NULL, -> Name varchar(10) -> ); Query OK, 0 rows affected (3.50 sec)
これで、insertコマンドを使用してテーブルにいくつかのレコードを挿入できます。クエリは次のとおりです-
mysql> insert into RowsUsingLimit values(10,'Larry'); Query OK, 1 row affected (0.17 sec) mysql> insert into RowsUsingLimit values(9,'Mike'); Query OK, 1 row affected (0.19 sec) mysql> insert into RowsUsingLimit values(15,'Sam'); Query OK, 1 row affected (0.18 sec) mysql> insert into RowsUsingLimit values(20,'Bob'); Query OK, 1 row affected (0.17 sec) mysql> insert into RowsUsingLimit values(1,'Carol'); Query OK, 1 row affected (0.14 sec) mysql> insert into RowsUsingLimit values(18,'David'); Query OK, 1 row affected (0.13 sec)>
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-
mysql> select *from RowsUsingLimit;
以下は出力です-
+----+-------+ | Id | Name | +----+-------+ | 10 | Larry | | 9 | Mike | | 15 | Sam | | 20 | Bob | | 1 | Carol | | 18 | David | +----+-------+ 6 rows in set (0.00 sec)
制限を使用しながら行の総数を取得するためのクエリは次のとおりです-
mysql> select SQL_CALC_FOUND_ROWS * FROM RowsUsingLimit LIMIT 0,6;
以下は出力です-
+----+-------+ | Id | Name | +----+-------+ | 10 | Larry | | 9 | Mike | | 15 | Sam | | 20 | Bob | | 1 | Carol | | 18 | David | +----+-------+ 6 rows in set (0.00 sec)
-
行から特定の行を取得するためのMySQLクエリ
まずテーブルを作成しましょう- mysql> create table DemoTable1972 ( Section char(1), StudentName varchar(20) ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1972 values('D','Chris'); Quer
-
MySQLのテーブル全体の結果の総数を制限しますか?
このために、LIMITの概念とともにUNIONALLを使用できます。この例では、3つのテーブルを作成します。 最初のテーブルを作成しましょう- mysql> create table demo3 −> ( −> value int −> ); Query OK, 0 rows affected (1.39 sec) 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 mysql> insert into demo3 values(10); Query OK, 1 row affected (0.13 sec