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

Hapus catatan duplikat tanpa membuat tabel sementara

Inilah solusi di tempat (tetapi bukan satu baris)

Cari tahu id maks:

select max(id) as maxid 
  from shop;

Ingat nilai ini. Katakanlah itu sama dengan 1000;

Masukkan kembali nilai unik, dengan offset:

insert into shop (id, tax_id) 
select distinct id + 1000, tax_id 
  from shop;

Lepaskan nilai lama:

delete from shop
  where id <= 1000;

Pulihkan id normal:

update shop
  set id = id - 1000;

KEUNTUNGAN!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa yang salah dengan pernyataan MySQL ini:DECLARE @ID INT

  2. Peringatan:mysqli_query() mengharapkan parameter 1 diberikan boolean mysqli

  3. PHP PDO SQL hanya mengembalikan satu baris data, bukan semua baris

  4. Optimalkan panggilan data di JDBC ke JTable

  5. MySQL Anda menggunakan mode pembaruan aman dan Anda mencoba memperbarui tabel tanpa WHERE