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

Cách xóa các hàng trùng lặp và cập nhật bảng

Để cập nhật bảng đơn đặt hàng, như sau:

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
        )

Sau đó, bạn có thể xóa các hàng trùng lặp bằng:

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

Truy vấn con kép là bắt buộc để tránh lỗi 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. Làm cách nào để xóa một hàng nhất định khỏi bảng mysql có cùng giá trị cột?

  2. PyMySQL là gì và nó khác MySQLdb như thế nào? Nó có thể ảnh hưởng đến việc triển khai Django không?

  3. Cách phân tầng vẫn tồn tại bằng JPA / EclipseLink

  4. MYSQL chọn tham gia nhiều bảng và SUM

  5. java.sql.Connection mở rộng cho SSH