我想从数据库中读取最后一条记录,但我没有任何唯一的ID列。我正在使用Mysql workbench 6.3c
我尝试了这个查询:
SELECT * FROM energymetersdata where VarName='01_lab1_lsi2_kwh'
ORDER BY VarValue desc LIMIT 1;
但我得到了第一行
答案 0 :(得分:0)
限制 - >用于获取您要从表中查看的记录数, '按订单排序' - >按降序对列进行排序
首先将日期列日期类型转换为str_to_date
SELECT *,str_to_date(timestring,'%d-%m-%Y %T')as date1 FROM energymetersdata where
VarName='01_lab1_lsi2_kwh' ORDER BY date1 desc LIMIT 1;
答案 1 :(得分:0)
试试这个:
SELECT * FROM energymetersdata where VarName='01_lab1_lsi2_kwh'
ORDER BY TimeString desc LIMIT 1;
答案 2 :(得分:0)
尝试简短查询
SELECT * from energymetersdata HAVING MAX(TimeString);
它将返回您想要的最新记录
答案 3 :(得分:0)
您似乎有一个名为time_ms
的时间列。您应该使用它来获取最新值:
SELECT emd.*
FROM energymetersdata emd
WHERE emd.VarName = '01_lab1_lsi2_kwh'
ORDER BY time_ms desc
LIMIT 1;
特别是,这可以利用energymetersdata(VarName, time_ms)
上的索引,这应该使查询非常快。