mysql過濾表中重複數據,查詢表中相同數據的最新一條數據

先查詢表幾條demo數據,名字相同,時間不同

select id,name,create_date from sys_user 

方法1:最簡單,且字段全部相同,排除其他字段不同; 

先對錶按照時間desc排序,在查詢該層使用group by 語句,它會按照分組將你排過序的數據的第一條取出來

select id,name,create_date from ( select * from sys_user order by create_date  desc) a group by a.name 

方法2:使用not exists,該方法通過相同名字的不同創建的時間進行比較

select id,name,create_date from sys_user a

where not exists (select * from sys_user b where a.name = b.name and a.create_date < create_date )  ;

方法3:使用內關聯的方式;

select * from sys_user a
      inner join (
        -- 先查詢出最後一條數據的時間
        select id,name, MAX(create_date) create_date from sys_user
 group by name
      ) b on a.name = b.name and a.create_date = b.create_date  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章