MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLレコードをランダムに並べ替え、名前を昇順で表示します


サブクエリを使用してランダムに並べ替え、名前を昇順で表示できます。 rand()はランダムに使用されますが、ORDERBYは名前レコードを昇順で表示するために使用されます。構文は次のとおりです-

select *from
(
   select *from yourTableName order by rand() limit anyIntegerValue;
) anyVariableName
order by yourColumnName;

上記の概念を理解するために、テーブルを作成しましょう。名前として販売するIDがあり、昇順で必要です。テーブルを作成するためのクエリは次のとおりです-

mysql> create table OrderByRandName
   −> (
   −> Id int,
   −> Name varchar(100)
   −> );
Query OK, 0 rows affected (0.96 sec)

挿入コマンドを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> insert into OrderByRandName values(100,'John');
Query OK, 1 row affected (0.18 sec)

mysql> insert into OrderByRandName values(101,'Bob');
Query OK, 1 row affected (0.11 sec)

mysql> insert into OrderByRandName values(102,'Johnson');
Query OK, 1 row affected (0.19 sec)

mysql> insert into OrderByRandName values(103,'David');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(104,'Smith');
Query OK, 1 row affected (0.17 sec)

mysql> insert into OrderByRandName values(105,'Taylor');
Query OK, 1 row affected (0.20 sec)

mysql> insert into OrderByRandName values(106,'Sam');
Query OK, 1 row affected (0.12 sec)

mysql> insert into OrderByRandName values(107,'Robert');
Query OK, 1 row affected (0.22 sec)

mysql> insert into OrderByRandName values(108,'Michael');
Query OK, 1 row affected (0.16 sec)

mysql> insert into OrderByRandName values(109,'Mark');
Query OK, 1 row affected (0.17 sec)

selectステートメントを使用してすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from OrderByRandName;

以下は出力です-

+------+---------+
| Id   | Name    |
+------+---------+
|  100 | John    |
|  101 | Bob     |
|  102 | Johnson |
|  103 | David   |
|  104 | Smith   |
|  105 | Taylor  |
|  106 | Sam     |
|  107 | Robert  |
|  108 | Michael |
|  109 | Mark    |
+------+---------+
10 rows in set (0.00 sec)

これは、rand()で並べ替え、名前を昇順で表示するクエリです-

mysql> select *from
   −> (
   −> select *from OrderByRandName order by rand() limit 10
   −> )tbl1
   −> order by Name;

以下は出力です-

+------+---------+
| Id   | Name    |
+------+---------+
|  101 | Bob     |
|  103 | David   |
|  100 | John    |
|  102 | Johnson |
|  109 | Mark    |
|  108 | Michael |
|  107 | Robert  |
|  106 | Sam     |
|  104 | Smith   |
|  105 | Taylor  |
+------+---------+
10 rows in set (0.39 sec)

  1. MySQLでレコードを注文してn行を削除する

    最初にテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> FirstName varchar(20)    -> ); Query OK, 0 rows affected (0.65 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable

  2. MySQLを特定の列xで並べ替え、残りの値を昇順で表示します

    まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> MonthNumber int    -> ); Query OK, 0 rows affected (1.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.14 sec) mysql> insert into