2012-07-21 28 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。