MySQLでランダムな行を選択します
ランダムな行を選択するには、MySQLのLIMITでrand()を使用します。構文は次のとおりです。
SELECT * FROM yourTableName ORDER BY RAND() LIMIT 1;
上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです。
mysql> create table generateRandomRow -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> Age int, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.66 sec)
挿入コマンドを使用して、テーブルにいくつかのレコードを挿入します。クエリは次のとおりです。
mysql> insert into generateRandomRow(Name,Age) values('John',23); Query OK, 1 row affected (0.22 sec) mysql> insert into generateRandomRow(Name,Age) values('Larry',21); Query OK, 1 row affected (0.32 sec) mysql> insert into generateRandomRow(Name,Age) values('David',21); Query OK, 1 row affected (0.39 sec) mysql> insert into generateRandomRow(Name,Age) values('Carol',24); Query OK, 1 row affected (0.21 sec) mysql> insert into generateRandomRow(Name,Age) values('Bob',27); Query OK, 1 row affected (0.14 sec) mysql> insert into generateRandomRow(Name,Age) values('Mike',29); Query OK, 1 row affected (0.19 sec) mysql> insert into generateRandomRow(Name,Age) values('Sam',26); Query OK, 1 row affected (0.17 sec)
selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです。
mysql> select *from generateRandomRow;
出力は次のとおりです。
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | John | 23 | | 2 | Larry | 21 | | 3 | David | 21 | | 4 | Carol | 24 | | 5 | Bob | 27 | | 6 | Mike | 29 | | 7 | Sam | 26 | +----+-------+------+ 7 rows in set (0.00 sec)
これは、rand()を使用してテーブルからランダムな行を選択するためのクエリです。クエリは次のとおりです。
mysql> select *from generateRandomRow order by rand() limit 1;
出力にはランダムな行が表示されます:
+----+------+------+ | Id | Name | Age | +----+------+------+ | 5 | Bob | 27 | +----+------+------+ 1 row in set (0.00 sec)
クエリを再度実行すると、次のランダムな行が表示されます。
mysql> select *from generateRandomRow order by rand() limit 1;
出力は次のとおりです。
+----+------+------+ | Id | Name | Age | +----+------+------+ | 6 | Mike | 29 | +----+------+------+ 1 row in set (0.00 sec)
-
SELECTステートメントで行インデックス(ランク)を生成するMySQLクエリ?
行インデックスを生成するには、ROW_NUMBER()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable ( Name varchar(40) ); Query OK, 0 rows affected (0.49 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris'); Query OK, 1 row affected (0.14 sec) mysql> insert
-
MySQLでSelectクエリを使用して挿入
SELECTクエリを使用した挿入の場合、構文は次のとおりです- insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;を選択します。 まずテーブルを作成しましょう- mysql> create table DemoTable1603 -> ( -> StudentId int, -> Stud