2011-09-05 64 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

相关问题