上位n行を効率的に選択するためのMySQLクエリ?
インデックスを使用して、上位n行を効率的に選択します。まずテーブルを作成しましょう-
mysql> create table DemoTable (StudentName varchar(100), StudentScore int ); Query OK, 0 rows affected (0.66 sec)
例
挿入コマンド-
を使用して、テーブルにいくつかのレコードを挿入しますmysql> insert into DemoTable values('John',34); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values('Carol',55); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('Bob',58); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values('Sam',38); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values('Mike',48); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values('Adam',41); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values('Chris',47); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('Robert',40); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable values('David',89); Query OK, 1 row affected (0.18 sec)
selectステートメントを使用してテーブルのすべてのレコードを表示する-
mysql> select *from DemoTable;
出力
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | John | 34 | | Carol | 55 | | Bob | 58 | | Sam | 38 | | Mike | 48 | | Adam | 41 | | Chris | 47 | | Robert | 40 | | David | 89 | +-------------+--------------+ 9 rows in set (0.00 sec)
例
以下は、上位n行を効率的に選択するためのクエリです。 ORDER BYを使用し、5行をスキップしました。スキップした後、LIMIT 3-
を使用したため、3つのレコードが表示されます。mysql> alter table DemoTable ADD INDEX name_score(StudentName,StudentScore); Query OK, 0 rows affected (0.61 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> select StudentName,StudentScore from DemoTable order by StudentScore LIMIT 5,3;
出力
+-------------+--------------+ | StudentName | StudentScore | +-------------+--------------+ | Mike | 48 | | Carol | 55 | | Bob | 58 | +-------------+--------------+ 3 rows in set (0.00 sec)
-
MySQLのselectクエリを使用して、別のテーブルにないテーブルから行を選択しますか?
この例では、2つのテーブルを作成し、Natural Left Joinを適用して、2番目のテーブルに存在しないテーブルから行を取得します。 最初のテーブルを作成します。 mysql> create table FirstTableDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.48 sec) 最初のテーブルにレコードを挿入します。 mysql> insert into FirstTableDemo values(1,Bo
-
MySQLから最後の10行を選択するにはどうすればよいですか?
MySQLから最後の10行を選択するには、SELECTステートメントとLimitの概念でサブクエリを使用できます。以下は例です。 テーブルを作成します。 mysql> create table Last10RecordsDemo -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.75 sec) テーブルにレコードを挿入します。 mysql> insert into Last10RecordsDemo values(1,John),(