Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Xóa các bản ghi trùng lặp mà không cần tạo bảng tạm thời

Đây là một giải pháp tại chỗ (nhưng không phải một lớp lót)

Tìm hiểu id tối đa:

select max(id) as maxid 
  from shop;

Hãy nhớ giá trị này. Giả sử nó bằng 1000;

Chèn lại các giá trị duy nhất, với độ lệch:

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

Bỏ các giá trị cũ:

delete from shop
  where id <= 1000;

Khôi phục id bình thường:

update shop
  set id = id - 1000;

LỢI NHUẬN!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách buộc PHP đọc các dòng mới và trả về dưới dạng

  2. PHP để lưu trữ hình ảnh trong MySQL hay không?

  3. Cách phân tích thời gian từ cơ sở dữ liệu

  4. MySQL Views - Khi nào sử dụng và khi nào thì không nên

  5. Làm cách nào để nhận được kết quả trên 2 bảng