2012-07-21 29 views
0

我正在尝试编写mysql语句,用于从表中选择最后一个添加的值。 由于我的表中的id列是一个自动递增值,我发现最简单的方法是选择ID值最高的行。选择具有最大id值的表行

我想知道是否有人可以帮我完成这件事?

事情是这样的:

的mysql_query( “SELECT * FROM表WHERE ID = MAX(ID)”

回答

2

MAX是你不能这样

尝试使用集合/组功能这

SELECT * 
FROM blog 
ORDER BY id DESC LIMIT 1; 

OR

SELECT * 
FROM blog 
where id=LAST_INSERT_ID(); 

OR

SELECT * 
FROM blog 
WHERE (id = (SELECT MAX(id) FROM blog LIMIT 1)) 
+0

我很欣赏这种回应。我会试一试。是否有理由知道,为什么我的查询不起作用?我知道mySQL具有MAX函数...? – AnchovyLegend 2012-07-21 15:24:25

+0

MAX是组功能,你不能使用这种方式 – 2012-07-21 15:28:55

1

您可以使用LAST_INSERT_ID()找到最后插入id.Hence,你的查询可以是这样的:

SELECT * 
FROM blog 
where id=LAST_INSERT_ID(); 

当您的查询工作,你必须这样做:

SELECT * 
FROM blog 
WHERE id=(
    SELECT max(id) FROM blog 
    ) 
+0

由于某种原因,这是不返回任何东西,因为现在我只有1行,但它仍然应该返回它,它不返回任何东西,我没有得到任何错误虽然当我尝试访问它的PHP行['ID'] – AnchovyLegend 2012-07-21 15:26:49

+0

检查出更新的答案.... – 2012-07-21 15:37:55

0

查询执行写入后:

$id = mysql_insert_id(); 

获取最后插入的记录的ID。