說明一下 :欄位date是個date型的
用SELECT date-'2017-08-28' date,id from t_info WHERE cpName = '火星網路' and id!=44 這條陳述句查詢出來的結果長這樣

然后上面查詢出來的結果作為一張表 a,查詢出date 為最大時候的那條資料
SELECT MAX(date),id from (SELECT date-'2017-08-28' date,id from t_info WHERE cpName = '火星網路' and id!=44)as a

這條資料是什么鬼,date跟id根本對應不上啊。。。
uj5u.com熱心網友回復:
這樣的sql有以下結果我覺得都是可以理解的:一、報錯。因為一個欄位取最大值,另一個欄位沒有指定分組函式
二、你想要的那種結果
三、輸出最大日期和所有的id,就是說有3條資料
四、輸出最大日期和查詢到的第一個id
你還可以考慮這樣的情況,如果最大日期有多個,怎么辦?
想要你的那個結果,實際上可以對查詢結果按日期排序,然后用limit限定只取1條這樣
如果有多個結果多個結果都是你想要的,那可以用子查詢先取出最大日期,然后找出日期等于最大日期的所有記錄
uj5u.com熱心網友回復:
max 是對的,至于id, 因為不在 group by 中,所以取的是俐記錄的值( 這個id 不在 group by 中嚴格來說是錯誤的行為,只是 mysql 支持這處行為而已)如果你要取最大的那條記錄,應該是 order by date desc limit 1
uj5u.com熱心網友回復:
具體的資訊參考官網檔案說明https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107909.html
標籤:MySQL
上一篇:求一條sql
下一篇:DB2運行一段時間后命令無效
