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

MySQL結果セットの列の一意の値のみを取得するにはどうすればよいですか?


MySQLテーブルからデータをクエリしているときに、列から重複する値を取得する場合があります。 SELECTステートメントのDISTINCT句を使用すると、結果セット内の重複データを取り除くことができます。

構文
SELECT DISTINCT Columns FROM Table_name WHERE conditions;

たとえば、次の列を持つ「tender」という名前のテーブルがあります-

mysql> Select * from tender;
+----------+--------------+--------------+-------+
| clientid | client_Fname | Client_Lname | value |
+----------+--------------+--------------+-------+
|      100 | Mohan        | Kumar        | 60000 |
|      101 | Sohan        | Singh        | 50000 |
|      101 | Somil        | Rattan       | 55000 |
|      103 | Gaurav       | Kumar        | 75000 |
|      103 | Rahul        | Singh        | 63000 |
+----------+--------------+--------------+-------+
5 rows in set (0.00 sec)

ここで、「Client_Lname」という名前の列の一意の値のみを取得する場合は、次のようにクエリを実行します-

mysql> Select DISTINCT client_Lname from tender;
+--------------+
| client_Lname |
+--------------+
| Kumar        |
| Singh        |
| Rattan       |
+--------------+
3 rows in set (0.05 sec)

以下のクエリは、「client_Fname」という名前の列でも同じことを行います。

mysql> Select DISTINCT client_Fname from tender;
+--------------+
| client_Fname |
+--------------+
| Mohan        |
| Sohan        |
| Somil        |
| Gaurav       |
| Rahul        |
+--------------+
5 rows in set (0.00 sec)

  1. 与えられた値が3つしかない列を持つMySQLテーブルを作成するにはどうすればよいですか?

    これには、ENUMデータ型を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable838(Color ENUM('RED','GREEN','BLUE')); Query OK, 0 rows affected (0.67 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable838 values('RED'); Query OK, 1 row affected (0.11 sec) mys

  2. MySQLデータベースの列から一意のレコードをカウントするにはどうすればよいですか?

    このためには、集計関数count(*)を使用して、GROUPBYにカウントしてグループ化します。まずテーブルを作成しましょう- mysql> create table DemoTable (    UserName varchar(100),    UserPostMessage text ); Query OK, 0 rows affected (0.54 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',&