我正在尝试创建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 |
我知道这不是你问题的最佳解决方案,但这会对你有所帮助。并且只是得到第一个记录,因为如果我添加LIMIT 1
输出是错误的:(
SELECT * FROM merge_info ORDER BY LENGTH(merge_id) DESC
将查询改为:-
SELECT MAX(merge_id) FROM merge_info;
我认为最好使用auto_increment字段,以获得LAST_INSERT_ID()的最后插入行,否则你不能确定是否最后一行,你已经插入。
这么长时间。要与您的解决方案一起订购,请使用此
ORDER BY SUBSTRING(merge_id,2) DESC
解决问题的更好方法可能是,使用AUTO_INCREMENT字段,并在显示时向其添加'A'。
为了解决这个问题,你可以使用下面的SQL语句SELECT * FROM `merge_info` ORDER BY SUBSTRING(merge_id,2) DESC limit 1
应该将您的merge_id列更改为自动增量列,并将您的查询更改为下面提到的,
SELECT MAX(merge_id) FROM merge_info;
如果你想让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);
$merge_id="A".$merge_id5;
在上面的过程之后,我们有一个meger_id像A1,A2…应用端