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

MySQLを使用して別の列で2つの異なる値を持つすべてのレコードを取得します


このために、GROUPBYHAVING句を使用できます。

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

mysql> create table DemoTable751 ( 
   StudentName varchar(100),
   SubjectName varchar(100)
);
Query OK, 0 rows affected (0.66 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable751 values('John','MySQL');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable751 values('John','MongoDB');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable751 values('Sam','MySQL');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable751 values('Carol','Java');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable751 values('David','MySQL');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable751 values('Carol','MongoDB');
Query OK, 1 row affected (0.17 sec)

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

mysql> select *from DemoTable751;

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

+-------------+-------------+
| StudentName | SubjectName |
+-------------+-------------+
| John        | MySQL       |
| John        | MongoDB     |
| Sam         | MySQL       |
| Carol       | Java        |
| David       | MySQL       |
| Carol       | MongoDB     |
+-------------+-------------+
6 rows in set (0.00 sec)

以下は、MySQLで2つの異なる値を持つすべてのレコードを取得するためのクエリです-

mysql> select StudentName from DemoTable751
   group by StudentName
   having count(SubjectName) > 1;

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

+-------------+
| StudentName |
+-------------+
| John        |
| Carol       |
+-------------+
2 rows in set (0.00 sec)

  1. MySQLを使用して、対応する重複値のレコードを別の列に追加します

    このために、GROUP BY句とともに集計関数SUM()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> Name varchar(20),    -> Value int    -> ); Query OK, 0 rows affected (2.08 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable va

  2. MySQLの条件が異なる同じ列の2つの値を連結します

    このために、集計関数でgroup_concat()を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1869      (      Id int,      Subject varchar(20 ),      Name varchar(20)      ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレ