我正在使用以下MySQL语句来回显我最近的更改来自我的表' recent_activity'。
$query1 = "SELECT * FROM $table WHERE user_id = '{$_SESSION['id']}' AND date > NOW() - INTERVAL 30 DAY GROUP BY activity_type ORDER BY date DESC";
$result1 = mysql_query($query1);
while ($row1 = mysql_fetch_array($result1)) {
这旨在回应用户最近采取的措施。
在我的表格中" recent_activity'我有以下结构:
Id | User_Id | Date | Activity_type | status
1 1 20/02/2014 12:00:01 Password
2 1 21/02/2014 12:20:01 Bank
3 1 22/02/2014 12:01:01 Username
4 1 20/02/2014 12:05:01 Password
我的日期字段是DATETIME格式。
我的查询对每种活动类型进行分组,因此只会显示每个操作之一。这很好,所以我最终得到以下结论:
Bank Actioned on 'date'
Password Actioned on 'date'
Username Actioned on 'date'
问题是我按照日期desc命令我的结果,所以这将显示最近降序的日期变化。
但如果我在同一天更改密码两次,例如
2月20日下午1点1点 然后是2月20日下午2点的第二次下午1点的密码更改会被回复,而不是我的下午2点更改?
这是为什么?我可以按日期和时间订购我的MySQL结果吗?
希望有人可以提供帮助。感谢
答案 0 :(得分:0)
您的字段看起来是DATE格式的 - 看看http://dev.mysql.com/doc/refman/5.1/en/datetime.html您希望将字段格式化为DATETIME
ALTER TABLE table_name MODIFY column_name DATETIME;