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

1つまたは2つの列に基づいて重複するMySQL行をすべて選択しますか?


このためには、HAVING句とともにサブクエリを使用します。まずテーブルを作成しましょう-

mysql> create table DemoTable
   (
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   StudentFirstName varchar(20),
   StudentLastName varchar(20)
   );
Query OK, 0 rows affected (0.27 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Smith');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('Carol','Taylor');
Query OK, 1 row affected (0.04 sec)

mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Doe');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('John','Brown');
Query OK, 1 row affected (0.05 sec)

mysql> insert into DemoTable(StudentFirstName,StudentLastName) values('David','Miller');
Query OK, 1 row affected (0.06 sec)

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

mysql> select *from DemoTable;

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

+-----------+------------------+-----------------+
| StudentId | StudentFirstName | StudentLastName |
+-----------+------------------+-----------------+
| 1         | John             | Smith           |
| 2         | Carol            | Taylor          |
| 3         | John             | Doe             |
| 4         | John             | Brown           |
| 5         | David            | Miller          |
+-----------+------------------+-----------------+
5 rows in set (0.00 sec)

以下は、1つまたは2つの列に基づいてすべての重複行を選択するためのクエリです。ここでは、複数回出現する名前、つまり重複する名前を数えています-

mysql> select StudentId from DemoTable
   where StudentFirstName=(select StudentFirstName from DemoTable having count(StudentFirstName) > 1);

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

+-----------+
| StudentId |
+-----------+
| 1         |
| 3         |
| 4         |
+-----------+
3 rows in set (0.03 sec)

  1. MySQLで列を行に結合しますか?

    列を行に結合するには、UNIONALLを使用します。以下は構文です- 構文 select yourColumnName1 from yourTableName    union all select yourColumnName2 from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Value1 int,    -> Value2 int    -> );

  2. MySQLで最大2列の合計を選択します

    2つの列の合計の最大値を選択するには、サブクエリとともに集計関数MAX()を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1587    -> (    -> Value1 int,    -> Value2 int    -> ); Query OK, 0 rows affected (0.59 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoT