如何从mysql记录中获取最后一个值

时间:2013-03-25 08:58:58

标签: php mysql

我是php初学者,请帮助我..

我有像bellow一样的mysql记录

id   name     value_1   value_2
 1   rakesh   100      50
 2   david    150      10
 3   richard   0       0
 4   michael   0       0  

我想要最后一个记录value_1做一些数学运算 但是如果最后一次记录value_1 == 0意味着我想要获得最高值_1(value_1 = 150)

我使用波纹管代码,但我只得到最后一个值

$get=mysql_query("SELECT MAX(id) FROM table_name ");
$got = mysql_fetch_array($get);
$next_id = $got['MAX(id)'];

这里得到3d richard value_1 == 0 但我想要第二个david value_1 150

请提前帮助我...

3 个答案:

答案 0 :(得分:5)

您的查询为您提供了最后一行,因为您始终选择最大的ID。

尝试:

SELECT * FROM table_name WHERE value_1 > 0 ORDER BY value_1 DESC LIMIT 1
  • 它将选择整行,因此您无需进行其他查询。
  • WHERE value_1> 0将仅选择value_1大于0的行。它假定存在此类记录。如果不是你的情况,请告诉我。
  • ORDER BY value_1 DESC告诉查询按value_1降序排序,因此所需的行将位于顶部。
  • LIMIT 1仅选择第一行。

答案 1 :(得分:2)

听起来像你想要的那样:

SELECT MAX(id) FROM table_name WHERE value_1 <> 0

将选择value_1不为0的最大ID

答案 2 :(得分:1)

试试这个:

$get=mysql_query("SELECT value_1 FROM table_name 
                  WHERE  value_1 != 0 
                  ORDER BY id DESC 
                  LIMIT 1");

我实际上并不理解这个问题,这是另一个给你不同结果的答案:

$get=mysql_query("SELECT value_1 FROM table_name 
                  WHERE  value_1 != 0 
                  ORDER BY value_1 DESC 
                  LIMIT 1");

两个查询的差异是一个是ORDER BY id DESC而另一个是ORDER BY value_1 DESC