[英]Last login details of a user
这是我正在使用的查询
ResultSet rsta3=st.executeQuery("Select * FROM login_details WHERE name ='"+name1+"' AND intime = (select max(intime) from login_details where name = '"+name1+"')");
这样我可以获得当前的登录详细信息。如何获取先前的登录详细信息?我应该使用什么查询?
以下答案中给出的查询仅给出11.44时间
你找到这个
Select * FROM login_details WHERE name ='"+name1+"' order by intime desc LIMIT 1,1
怎么样
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
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)");
尝试这个
您的查询正确,但是您在插入当前登录会话后正在获取数据。
因此,在验证了用户名和密码后,请使用查询获取最后的登录详细信息,然后使用新的登录时间更新表。
即使使用ORDER BY LIMIT进行抓取也应该有效。
尝试这样的事情:
从login_details中选择*,其中name ='“ + name +”'的顺序为超时时间限制1,1。
唯一的想法是,首先按时间降序对列表进行排序,在您的情况下为:(outtime)将以所需的顺序显示结果。 然后使用限制仅提取第一条记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.