MySQLで単一のレコードを除いて重複レコードを削除するにはどうすればよいですか?
1つのレコードを保持し、残りの重複レコードを削除する必要があるため、このための条件を指定してDELETEコマンドを使用できます。
まずテーブルを作成しましょう-
mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(40) ); Query OK, 0 rows affected (0.48 sec)
挿入コマンド-
を使用してテーブルにレコードを挿入しますmysql> insert into DemoTable(StudentName) values('John'); Query OK, 1 row affected (0.16 sec) mysql> insert into DemoTable(StudentName) values('Carol'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable(StudentName) values('Sam'); Query OK, 1 row affected (0.28 sec) mysql> insert into DemoTable(StudentName) values('Carol'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable(StudentName) values('David'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable(StudentName) values('Carol'); Query OK, 1 row affected (0.26 sec)
selectコマンドを使用してテーブルのレコードを表示する-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Carol | | 3 | Sam | | 4 | Carol | | 5 | David | | 6 | Carol | +-----------+-------------+ 6 rows in set (0.00 sec)
これは、単一のレコードを除く重複レコードを削除するためのクエリです-
mysql> delete tbl1 from DemoTable tbl1,DemoTable tbl2 WHERE tbl1.StudentName = tbl2.StudentName AND tbl1.StudentId > tbl2.StudentId; Query OK, 2 rows affected (0.79 sec)
上記のクエリは、「Carol」の2行を削除し、「Carol」レコードの1つを残しました。
テーブルのレコードを表示してみましょう-
mysql> select *from DemoTable;
これにより、次の出力が生成されます-
+-----------+-------------+ | StudentId | StudentName | +-----------+-------------+ | 1 | John | | 2 | Carol | | 3 | Sam | | 5 | David | +-----------+-------------+ 4 rows in set (0.00 sec)
-
MySQLの対応する重複レコードのSUM
最初にテーブルを作成しましょう- mysql> create table DemoTable -> ( -> StudentName varchar(20), -> StudentMarks int -> ); Query OK, 0 rows affected (0.68 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable values('Chris',
-
MySQLの特定の値に対して低い値のレコード以外のレコードを選択するにはどうすればよいですか?
このためには、WHERE句を使用する必要があります。以下は構文です- select *from yourTableName where yourColumnName > yourValue; テーブルを作成しましょう- mysql> create table demo27 −> ( −> id int not null auto_increment primary key, −> value int −> ); Query OK, 0 rows affected (3.14 sec) 挿入コマンド-を使用し