用户的上次登录详细信息

时间:2013-12-20 07:38:15

标签: java mysql

这是我正在使用的查询

ResultSet rsta3=st.executeQuery("Select * FROM login_details WHERE name ='"+name1+"' AND intime = (select max(intime) from login_details where name = '"+name1+"')");

有了这个,我得到了当前的登录详细信息。如何获取以前的登录详细信息?我应该使用什么查询?

enter image description here

以下答案中给出的查询仅提供11.44时间

5 个答案:

答案 0 :(得分:4)

你找到了

Select * FROM login_details WHERE name ='"+name1+"' order by intime desc LIMIT 1,1

答案 1 :(得分:0)

怎么样

Select * FROM login_details WHERE name ='"+name1+"' order by intime desc LIMIT 1,1

这应该检索第二个最早的记录

正如后面的调查结果所提到的,由于您的数据库错误地将日期数据存储为Varchar,您可以使用以下查询,直到您修复数据库为止。

Select * FROM login_details WHERE name ='"+name1+"' order by id desc LIMIT 1,1

答案 2 :(得分:0)

ResultSet rsta3=st.executeQuery("Select * FROM login_details WHERE name ='"+name1+"' AND intime = (select max(intime) from login_details where name = '"+name1+"' order by intime desc limit 1,1)");

试试这个

答案 3 :(得分:0)

您的查询是正确的,但您在插入当前登录会话后获取数据。

因此,一旦您验证了您的用户名和密码,请使用您的查询获取最后的登录详细信息,然后使用新的登录时间更新您的表。

即使使用ORDER BY LIMIT进行提取也应该有效。

答案 4 :(得分:0)

尝试这样的事情:

从login_details中选择*,其中name ='“+ name +”'按时间顺序desc limit 1,1。

唯一的想法是首先按时间降序对列表进行排序,在您的情况下:(outtime)将按您想要的顺序显示结果。然后使用限制获取仅第一条记录。