是否可以仅获取mysql查询返回的最后一行。例如。假设我有
$result=mysql_query("SELECT * from mytable)
它返回许多行。我知道获取数据的唯一方法是使用while
循环
while ($row=mysql_fetch_array($result)) { ... }
我知道您在想什么...为什么不只对最后一行进行SELECT
查询?但是可以说这是我无法控制的。该查询已经完成,并且有很多行,而我不想再执行其他查询。是获取最后一行,经过整个while
循环,然后查看返回的最后一个数据的唯一方法吗?还是有一种方法可以向后获取行并在第一个行处停止。实际上,如果使它变得更容易,我什至不需要整个最后一行。我想知道最后一行的最后一列是什么。
答案 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行。