Your Question

如题,我司将 mysql 数据库当了时序数据用,数据简化结构包含了

id(自增主键,int),
deviceID(设备ID,varchar(255)), 
value(值,varchar(255)),
createTime(创建时间,datetime),
opcTime(opc服务器时间,datetime),
sensorTime(传感器给时间,datetime)

现在想获取某个传感器的最新值,测试了以下语句

// 这种返回是对的
db.Debug().Table(tableName).Where("deviceParaId = ?", deviceID).Last(&data)
// 这种返回不是对的 
db.Debug().Table(tableName).Where("deviceParaId = ?", deviceID).Order("id asc").Last(&data2)

请问这两句语句有何异同

附:运行截图 打码的是设备位置 Gorm order by id asc 取最新问题

The document you expected this should be explained

https://gorm.io/zh_CN/docs/query.html#%E6%8E%92%E5%BA%8F

Expected answer

想获取id最大的那一条,即为最新状态

Comment From: a631807682

If you need to define your own Order, use Take instead.