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

Hợp nhất và sau đó Xóa các mục nhập trùng lặp

Tôi không nghĩ rằng bạn có thể làm điều này trong SQL một cách hiệu quả. Một cách chậm để làm điều đó là một cái gì đó như:

CREATE TEMPORARY TABLE tmp_table (...);
INSERT INTO tmp_table SELECT phone, max(rating) FROM table GROUP BY phone;
TRUNCATE table;
INSERT INTO table SELECT * FROM tmp_table;

Một cách tốt hơn sẽ là một thủ tục được lưu trữ hoặc một tập lệnh bên ngoài. Chọn tất cả các hàng từ bảng được sắp xếp theo phone và thực hiện việc nhóm / hợp nhất / xóa theo cách thủ công (lặp lại các kết quả, so sánh với phone giá trị từ hàng trước đó, nếu nó khác, bạn có một nhóm mới, v.v.). Tuy nhiên, việc viết các thủ tục được lưu trữ trong MySQL rất khó khăn, vì vậy tôi sẽ không viết mã cho bạ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. Trả về 0 nếu trường rỗng trong MySQL

  2. Cách xoay một lược đồ thực thể-thuộc tính-giá trị MySQL

  3. Chèn dữ liệu vào bảng mysql bằng cách sử dụng ansible

  4. Không thể kết nối với phiên bản RDS từ phiên bản EC2

  5. NameError:name '_mysql' không được xác định sau khi thiết lập thay đổi thành mysql