Bạn sẽ có thể áp dụng một hàm tổng hợp cho tất cả các cột và sau đó GROUP BY id
:
select id,
max(name) name,
max(age) age,
max(grade) grade
from yourtable
group by id
Về cấu trúc DB, vấn đề duy nhất mà tôi thấy là bạn đang chèn nhiều bản ghi cho cùng một người dùng. Bạn nên sử dụng UPDATE
để sử dụng các giá trị thay vì chèn.
Có vẻ như bạn muốn sử dụng mã REPLACE >
chức năng trong MySQL ( đây là hướng dẫn
).
Vì vậy, truy vấn sẽ tương tự như sau:
REPLACE
INTO yourtable (`id`, `name`, `age`, `grade`)
VALUES (0, 'john', 11, null);