从数据库读取最后一条没有任何唯一ID的记录

时间:2017-02-04 06:10:04

标签: mysql sql

enter image description here

我想从数据库中读取最后一条记录,但我没有任何唯一的ID列。我正在使用Mysql workbench 6.3c

我尝试了这个查询:

SELECT * FROM energymetersdata where VarName='01_lab1_lsi2_kwh' 
ORDER BY VarValue desc LIMIT 1;

但我得到了第一行

4 个答案:

答案 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)上的索引,这应该使查询非常快。