使用PHP

时间:2019-03-29 14:26:50

标签: php mysql select mysqli-fetch-array

是否可以仅获取mysql查询返回的最后一行。例如。假设我有

$result=mysql_query("SELECT * from mytable)

它返回许多行。我知道获取数据的唯一方法是使用while循环

while ($row=mysql_fetch_array($result)) { ... }

我知道您在想什么...为什么不只对最后一行进行SELECT查询?但是可以说这是我无法控制的。该查询已经完成,并且有很多行,而我不想再执行其他查询。是获取最后一行,经过整个while循环,然后查看返回的最后一个数据的唯一方法吗?还是有一种方法可以向后获取行并在第一个行处停止。实际上,如果使它变得更容易,我什至不需要整个最后一行。我想知道最后一行的最后一列是什么。

3 个答案:

答案 0 :(得分:3)

尽管您使用的MySQL API已过时,但是您可以使用mysql_data_seek

链接为您提供了一个示例,您可以执行以下操作:

mysql_data_seek($result, mysql_num_rows($result) - 1);
$row = mysql_fetch_array($result);

最新的mysqli也有this feature

答案 1 :(得分:1)

使用

SELECT * FROM Table ORDER BY ID DESC LIMIT 1

或者PHP答案:

$lastElement = array_values(array_slice($array, -1))[0];

如果您在查询结果中运行该值,则可以通过这种方式获取值。

答案 2 :(得分:0)

PHP

您可以在循环外使用一个变量来保存最后一行,如下所示:

cell.imageAvatar.sd_setImage(with: URL(string:newProfileImageUrl), placeholderImage: UIImage(named: "placeholder.png"))

您现在可以在查询之外的任何地方使用lastRow。

SQL

您可以通过下降顺序来翻转桌子。

$lastRow = null;
while ($row=mysql_fetch_array($result)) 
{  
    $lastRow = $row;
}

$value = lastRow['ColumnName'];

LIMIT 1仅返回1行。