MYSQL仅在基于Timestamp的相同ID中显示一行

时间:2017-01-25 07:46:50

标签: mysql timestamp selection

如何在同一ID中选择仅一行

这是我的MySQL代码

public void populateSetDate (int year, int month, int day){

        String monthString = String.valueOf(month);
        if (monthString.length() == 1) {
            monthString = "0" + monthString;
        }

        etPickupDate.setText(new StringBuilder().append(day).append("-")
                .append(monthString).append("-").append(year).append(" "));

        etDropDate.setText(new StringBuilder().append(day).append("-")
                .append(monthString).append("-").append(year).append(" "));
}

这是我的表

Select * from logoutdetails ORDER BY LogInTime DESC LIMIT 1;

2 个答案:

答案 0 :(得分:1)

如果您对从每个ID获取最新时间戳感到满意,那么您可以试试这个:

SELECT ID, MAX(LogInTime) AS LogInTime
FROM logoutdetails
GROUP BY ID
ORDER BY ID

如果您想保留最早的登录时间,也可以使用MIN()代替MAX()

如果logoutdetails表有其他列,并且您也想要选择它们,则必须使用子查询首先标识最大ID个记录,然后再加入原始表。像这样:

SELECT t1.*
FROM logoutdetails t1
INNER JOIN
(
    SELECT ID, MAX(LogInTime) AS max_login_time
    FROM logoutdetails
    GROUP BY ID
) t2
    ON t1.ID = t2.ID AND
       t1.LogInTime = t2.max_login_time

答案 1 :(得分:0)

id分组以获得唯一的。然后,您必须决定每个id的日期。使用max()获取每个

的最新日期
Select id, max(LogInTime) as LogInTime
from logoutdetails 
group by id