Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySql:hapus baris tabel tergantung pada nilai duplikat kolom?

Saya pikir Anda bisa mencoba menambahkan INDEKS UNIK menggunakan IGNORE:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);

MySQL harus merespons dengan sesuatu seperti:

Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0

Tentu saja, Anda akan menyerahkannya kepada MySQL untuk memutuskan baris mana yang akan dihapus.

EDIT:

ini berfungsi untuk kolom sebanyak yang Anda suka:

ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);

periksa dokumentasi MySQL di BUAT INDEKS . Gotcha umum (setidaknya satu yang saya temui sekali) adalah melupakan NULL = NULL tidak benar (tetapi NULL ), maka {42, NULL} dan {42, NULL} diperbolehkan untuk indeks UNIK pada dua kolom.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pertanyaan mysql mudah tentang kunci utama dan sisipan

  2. Hapus baris dengan relasi dengan tabel lain

  3. Cara mudah untuk membungkus pernyataan SQL yang panjang dalam javascript

  4. Bagaimana cara menginstal mysql secara diam-diam di pengaturan inno?

  5. MySQL semua hubungan orang tua-anak