我需要编写一个查询来使用mysql table
从两列中检索值我的桌子有以下结构
| ID | user_id | datetime | message |
| 1 | 21 | 2012-05-10 04:13:01 | message1 |
| 2 | 07 | 2012-05-10 04:17:51 | message2 |
| 3 | 21 | 2012-05-11 04:21:51 | message3 |
| 4 | 21 | 2012-05-11 04:43:51 | message4 |
| 5 | 07 | 2012-05-11 04:21:51 | message5 |
| 5 | 21 | 2012-05-11 04:43:51 | message6 |
我写了以下查询
$ query =“SELECT MAX(datetime)FROM messages
其中user_id = 21且date = 2012-05-11”;
但我没有从表中获得最新记录获得空值
帮助我们
答案 0 :(得分:1)
您应该使用DATE(date)
来获取时间戳的日期。 MySQL函数DATE()
仅提取没有小时,分钟和秒的日期。
以下是您的查询:
SELECT MAX(datetime)
FROM messages
WHERE user_id = 21 AND DATE(date) = '2012-05-11'
答案 1 :(得分:1)
$query="SELECT MAX(datetime) FROM messages where user_id=21 and date LIKE '2012-05-11%'";
答案 2 :(得分:0)
您是否尝试过以下操作?
$query="SELECT MAX(datetime) FROM messages where user_id=21";
<强>更新强> 在您的问题中,您没有指定是否要检索特定日期的最后一条记录。如果你这样做,你需要使用MySQL的date函数。
答案 3 :(得分:0)
您的查询要求“..... date = 2012-05-11”;“但您的表格中没有名为date的字段?您的意思是日期时间吗?如果是,您可能想尝试”.. ...日期时间如'2012-05-11%'“;
答案 4 :(得分:0)
您在寻找最新记录吗?您可以使用子查询来获取此信息:
$query = "SELECT * FROM messages WHERE datetime = (SELECT MAX(datetime) FROM messages)";