我正在尝试创建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 |
答案 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