从mysql表中选择最后一个元素

时间:2012-05-11 18:02:56

标签: php mysql

我需要编写一个查询来使用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”;

但我没有从表中获得最新记录获得空值

帮助我们

5 个答案:

答案 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)";