我有一个login_log
表:
我正在尝试根据login_email, login_success, login_email, account_type_id, login_lock, login_ip
所以到目前为止我已经
了SELECT count(*) count, MAX(login_date) date, login_ip, login_email, account_type_id, login_lock, login_success
FROM `login_log`
GROUP BY login_email, login_success, login_email, account_type_id, login_lock, login_ip
ORDER BY date DESC
哪个让我:
但是以第5行和第6行为例。在6上,用户在第5行成功登录前3次登录失败。第5行的计数应为1,但它会在失败的尝试之前对成功登录进行分组。
我想要的是成功登录的一行,登录失败的行,然后登录成功的行,按日期排序。
如何对日期查询进行分组,使它们不会相互“跳跃”?
答案 0 :(得分:1)
您的查询的问题是您不按分组依据中的日期分组。结果,您的Count(*)不必要地增加。
添加:
Group By Date
会起作用,但可能无法给你正确的间隔。添加MySQL Date()函数可以让你按天拆分,所以你要添加:
Group By Date(Date)
您还可能希望将别名Date更改为非保留的MySQL关键字,例如LogDate或类似的东西。
有关MySQL日期/时间功能的更多信息: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html