这是我正在使用的查询
ResultSet rsta3=st.executeQuery("Select * FROM login_details WHERE name ='"+name1+"' AND intime = (select max(intime) from login_details where name = '"+name1+"')");
有了这个,我得到了当前的登录详细信息。如何获取以前的登录详细信息?我应该使用什么查询?
以下答案中给出的查询仅提供11.44时间
答案 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)将按您想要的顺序显示结果。然后使用限制获取仅第一条记录。