我正在使用以下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'
问题是我正在根据日期降序排列我的结果,所以这将以日期降序显示最近的变化。
但如果我在同一天更改密码两次,例如
2月20日下午1点然后是2月20日下午2点的第二次
下午1点的密码更改会得到回应,而不是我下午2点的更改?
为什么会这样?我可以按日期和时间订购MySQL结果吗?
希望有人能帮忙。感谢
看起来您的字段是DATE格式的-请查看http://dev.mysql.com/doc/refman/5.1/en/datetime.html您想将字段格式化为DATETIME
ALTER TABLE表名MODIFY列名DATETIME;