Mysql
 sql >> база данни >  >> RDS >> Mysql

Изтрийте дублиращи се записи, без да създавате временна таблица

Ето едно решение на място (но не едноредово)

Разберете максимален идентификатор:

select max(id) as maxid 
  from shop;

Запомнете тази стойност. Да кажем, че е равно на 1000;

Вмъкнете отново уникални стойности с отместване:

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

Изхвърлете старите стойности:

delete from shop
  where id <= 1000;

Възстановяване на нормални идентификатори:

update shop
  set id = id - 1000;

ПЕЧАЛБА!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL-алхимия:ValueError твърде много стойности за разопаковане?

  2. Актуализиране на множество колони на MySQL таблица с помощта на масиви с PDO

  3. Урок за MySQL – Конфигуриране и управление на SSL на вашия MySQL сървър

  4. MySQL REPLACE:Как да замените всички появявания на char във всеки отделен подниз, ограничен от една и съща глава и опашка

  5. Сортиране на колона низ, съдържаща числа в SQL?