mysql 查詢不一樣用戶 最新的一條記錄

數據庫記錄:java

MYSQL查詢不一樣用戶 最新的一條記錄數據庫

方法1:查詢出結果後將時間排序後取第一條(只能取到一條,而且不能查詢不一樣客戶的記錄)spa

SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM `service_records` ORDER BY MODIFY_TIME DESC LIMIT 1;

查詢結果:3d

方法2:查詢排序後group by(先按照MODIFY_TIME把順序按照降序排列好,排列好的值做爲子查詢a,而後再根據子查詢a按照CUSTOMER_ID分組code

SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM 
 (SELECT CUSTOMER_ID,CONTENT,MODIFY_TIME FROM `service_records` ORDER BY MODIFY_TIME DESC) a 
GROUP BY a.CUSTOMER_ID

查詢結果爲:blog

group by 能夠根據group by 的參數列分組,但返回的結果只有一條,仔細觀察發現group by是將分組後的第一條記錄返回。時間在查詢後默認是順序排列,所以須要先將時間倒序排列,方可取出距離當前最近一條。這樣查詢實際上仍是進行了兩次查詢。排序

方法三:將max() 方法和group by結合使用class

SELECT CUSTOMER_ID,CONTENT,MAX(MODIFY_TIME) FROM `service_records` GROUP BY CUSTOMER_ID

查詢結果爲:bfc

和方法二對比發現,該寫法是錯誤的,雖然MODIFY_TIME取的值是最大值,是正確的,可是其餘的值取的都是在不一樣的CUSTOMER_ID下的第一條記錄,因此MODIFY_TIME列的值和其餘列的值不匹配,不是同一條記錄。。。因此正確的寫法是第二種,先正確的排好序,而後再利用group by 分組service

相關文章
相關標籤/搜索