如何在PHP,Mysql中选择最后插入的行

时间:2014-06-30 06:35:22

标签: php mysql

我正在尝试创建ID,例如“A1,A2,A3 ..等等 所以我试过这个

$q = mysql_query("SELECT merge_id FROM merge_info ORDER BY merge_id DESC LIMIT 1;");
$s = mysql_fetch_array($q);
$merge_id5 = $s['merge_id'];
$count2=mysql_num_rows($q);
if($count2>0)
{
    $merge_id5 = explode("A",$merge_id5);   
    $mergeid_no = $merge_id5[1]+1;  
    $merge_id6 = $mergeid_no;
}
else
{
    $merge_id6 ="1";
}
if($count<1)
{
    $merge_id = $merge_id5;
}

一切都运转良好......但是在创建A9之后,它会创建A10然后再次创建A10 不会移动到A11,A12。等等,我认为如果我写正确的查询来获取最后插入的行,我将解决这个问题

请有人帮助我

db table :

merge_id  |  name |
      A1  |  xxxx |
      A2  |  yyyy |
      A3  |  zzzz |
        ....
        ....
      A9  |   sds |
      A10 |  dsfs |

5 个答案:

答案 0 :(得分:1)

我知道这不是解决问题的最佳方案,但这对您有所帮助。 并获得第一条记录,因为如果我添加LIMIT 1输出错误:(

SELECT * FROM merge_info ORDER BY LENGTH(merge_id) DESC

答案 1 :(得分:0)

将您的查询更改为: -

SELECT MAX(merge_id) FROM merge_info;

答案 2 :(得分:0)

我认为你最好使用auto_increment字段来获取LAST_INSERT_ID()的最后一个插入行,否则你无法确定最后一行是否已插入。

这么久。要使用您的解决方案订购,请使用此功能。

ORDER BY SUBSTRING(merge_id,2) DESC

答案 3 :(得分:0)

更好地处理您的问题可能是, 使用AUTO_INCREMENT字段,同时显示附加'A'。

现在要解决这个问题,你可以使用下面的SQL语句

SELECT * FROM `merge_info` ORDER BY SUBSTRING(merge_id,2) DESC limit 1

答案 4 :(得分:0)

应该将merge_id列更改为自动增量列,并将查询更改为下面提到的

SELECT MAX(merge_id) FROM merge_info;

如果您想要像A1,A2,A3 ......这样的ID,那么您可以使用以下代码获取它

 $q = mysql_query("SELECT merge_id FROM merge_info ORDER BY merge_id DESC LIMIT 1;");
                                         $s = mysql_fetch_array($q);
                                         $merge_id5 = $s['merge_id'];
                                         $count2=mysql_num_rows($q);

                    $merge_id="A".$merge_id5;

在上述过程之后,我们在应用程序端有一个像A1,A2 ..这样的meger_id