我有这个查询
SELECT distinct username, time
FROM `sadaat`.`wp_loginlog`
where username != 'admin' or username is not null
order by time DESC
limit 0,20
这并没有给我不同的记录。如果我把时间拿走,那就确实如此。我该怎么做才能在那里得到明显的结果。
如果我使用
SELECT distinct username
FROM `sadaat`.`wp_loginlog`
where username != 'admin' or username is not null
order by time DESC
limit 0,20
然后我无法获得时间值,因为它不会选择时间字段
答案 0 :(得分:2)
DISTINCT子句引用SELECT子句中的所有属性,而不仅仅是用户名。 (实际上,拥有不同的用户名和非独特的时间是没有意义的。)
例如,如果您的行具有相同的用户名和不同的时间,则始终显示
也许,如果您想了解与每位用户相关的时间信息,可以查看group by clause
答案 1 :(得分:2)
您当前的查询无效,因为distinct
会考虑您选择的所有列。
如果您想要包含time
列的不同用户名,则可以将group by
与time
列的聚合结合使用,例如:
SELECT username, max(time)
FROM `sadaat`.`wp_loginlog` where username != 'admin' or username is not null
group by username
order by time DESC limit 0,20
答案 2 :(得分:0)
这就是诀窍
SELECT *
FROM `sadaat`.`wp_loginlog`
where username != 'admin' or username is not null
Group By username
order by time DESC
limit 0,20