2011-09-05 83 views

回答

8

我會選擇

SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1; 

它已經發布,但我會添加更多內容:

如果您執行此查詢,通常可以創建倒序排序的索引。

喜歡的東西:

CREATE INDEX ON Live (public_id DESC) 

請注意

DESC

PHP + MySQL代碼:

<?php 
$result = mysql_query('SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1;'); 
if (mysql_num_rows($result) > 0) { 
    $max_public_id = mysql_fetch_row($result); 
    echo $max_public_id[0]; //Here it is 
} 
?> 
+0

所有打印出的數組是'array',我怎樣才能得到像4這樣的個人號碼? –

+0

對不起,我的錯。我編輯它。 BTW。您應該嘗試瞭解該語言的見解。您可以使用print_r()函數打印數組內容。看看php.net – santiagobasulto

+1

我確實知道'print_r();'但是不認爲這可以解決問題。這工作,感謝您的幫助! –

5
SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1; 

會給您最多

編輯:對於PHP

$conn = mysql_connect(.... 
$query = "SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1"; 
$result = mysql_query($query, $conn); 
+0

這將不再打印出來。當我嘗試這個。我如何迴應它? –

+0

@Pete print $ result;並打印「$ result」;工作,但我不知道哪一個是正確的。我的PHP是有限的。 – Mobius

3

另一種選擇是使用MAX,即

SELECT MAX(public_id) FROM Live 
+0

而downvote的原因是? – ain

+1

這仍然是一個有效的答案。是否真的慢取決於數據... – ain

+1

我沒有downvote,我只是添加了信息,因爲性能問題可能非常重要。 – FrankS

0

您可以使用ORDER BY public_id DESC LIMIT 1;來獲取最高id的記錄(我猜你正在使用autoincrement屬性在public_id)或MySQL MAX()功能是這樣的:

SELECT * FROM table WHERE public_id = MAX(public_id); 

編輯:

這裏是你將如何做到這一點在PHP中:

// executing the QUERY request to MySQL server, mysql_query() returns resource ID 
$result = mysql_query('SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1'); 
// then we use this resource ID to fetch the actual value MySQL have returned 
$row = mysql_fetch_array($result, MYSQL_FETCH_ASSOC); 
// $row variable now holds all the data we got from MySQL, its an array, so we just output the public_id column value to the screen 
echo $row['public_id']; // you can use var_dump($row); to see the whole content of $row 
+0

速度太慢:) – ludesign

+0

那你如何得到這個號碼?對不起,這可能聽起來像一個愚蠢的問題,但我仍然是MySQL的新手。你會說$ last_number = SELECT public_id FROM Live ORDER BY public_id DESC LIMIT 1 ;? –

+0

我編輯了我的答案,希望有所幫助。:) – ludesign