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

複数のオカレンス(Name)を持つランダムな行値(IdとName)を選択するMySQLクエリ?


このためには、ランダムレコードにRAND()を使用し、 LIMIT 1 単一の値のみを取得します。ただし、WHERE句を使用して、繰り返されている特定の「名前」を選択します。

まずテーブルを作成しましょう-

mysql> create table DemoTable
(
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(20)
);
Query OK, 0 rows affected (1.65 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(Name) values('Chris');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable(Name) values('David');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(Name) values('Bob');
Query OK, 1 row affected (0.08 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

これにより、次の出力が生成されます-

+----+-------+
| Id | Name  |
+----+-------+
|  1 | Chris |
|  2 | Bob   |
|  3 | David |
|  4 | Bob   |
|  5 | Bob   |
+----+-------+
5 rows in set (0.65 sec)

以下は、ランダムな値をフェッチするためのクエリです-

mysql> select *from DemoTable where Name='Bob' order by rand() limit 1;

これにより、次の出力が生成されます-

+----+------+
| Id | Name |
+----+------+
| 5  | Bob  |
+----+------+
1 row in set (0.00 sec)

  1. 最大および最小の給与行を選択するためのMySQLクエリ?

    このためには、MIN()およびMAX()とともにサブクエリを使用します。最大値と最小値の両方を表示するには、UNIONALLを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> EmployeeName varchar(20),    -> EmployeeSalary int    -> ); Query OK, 0 rows affected (0.70 sec) 挿入コマンド-を使用して、テーブルに

  2. MySQLで列が複数の値を満たす必要がある場合に行を選択するにはどうすればよいですか?

    このために、IN()とともにGROUPBYHAVING句を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1885    (    FirstName varchar(20),    Subject varchar(50)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1885 val