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

Tìm ID trùng lặp gần đây nhất với MySQL

Chà, bạn đã trả lời được câu hỏi của mình. Có vẻ như bạn muốn max(id) :

SELECT email, COUNT(email) AS occurences, max(id)
FROM wineries
GROUP BY email
HAVING (COUNT(email) > 1);

Bạn có thể xóa những người khác bằng cách sử dụng câu lệnh. Xóa bằng join có một cú pháp phức tạp trong đó bạn phải liệt kê tên bảng trước rồi chỉ định from mệnh đề với phép nối:

delete wineries
            from wineries join
            (select email, max(id) as maxid
             from wineries
             group by email
             having count(*) > 1
            ) we
            on we.email = wineries.email and
               wineries.id < we.maxid;

Hoặc viết cái này dưới dạng exists mệnh đề:

delete from wineries
    where exists (select 1
                  from (select email, max(id) as maxid
                        from wineries
                        group by email
                       ) we
                  where we.email = wineries.email and wineries.id < we.maxid
                 )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự cố với mã hóa utf-8 bằng PHP + MySQL

  2. Tạo các thủ tục được lưu trữ với PDO trong PHP

  3. Cách giải quyết không có lỗi GROUP BY trong truy vấn mysql

  4. Làm cách nào để thêm một ứng dụng khách bằng JDBC cho ClientDetailsServiceConfigurer trong Spring?

  5. Cách tối ưu hóa cơ sở dữ liệu trang web