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

Как да изтриете дублирани редове и да актуализирате таблицата

За да актуализирате таблицата с поръчки, нещо като:

update  orders
join    regions r1
on      r1.id = orders.region_id
set     orders.region_id = 
        (
        select  min(r2.id)
        from    regions r2
        where   r2.name = r1.name
        )

След това можете да изтриете дублиращи се редове с:

delete  regions
from    regions
where   id not in
        (
        select  id
        from    (
                select  min(id) as id
                from    regions
                group by
                    name
                ) as SubqueryAlias
        )

Двойната подзаявка е необходима, за да се избегне грешката в MySQL ERROR 1093 (HY000) at line 36: You can't specify target table 'regions' for update in FROM clause .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDO Множество заявки:транзакция за извършване и връщане назад

  2. използване на променлива на средата за локална конфигурация на секвелизиране

  3. Застой чрез SELECT ... ЗА АКТУАЛИЗИРАНЕ в MySQL

  4. Създайте ново приложение Ruby on Rails, използвайки MySQL вместо SQLite

  5. MySQL LOAD DATA INFILE със запетая като десетичен разделител