我在我的表的一列中有这个id号,
0907003
0907004
0907005
1008005
1008006
1008007
1009001
1009002
1009003
当我添加1009
的新值时,它会添加最后三个004
,因为以1009
(10-09)开头的最后一个数字是003
。
或者,如果我添加1008
的新值,则会添加最后三个008
号
因为以1008
(10-08)开头的最后一个数字是007
。
或者,如果我添加0907
的新值,则会添加最后三个006
号
因为以0907
(09-07)开头的最后一个号码是007
。
怎么做?
非常感谢提前!
$front_id = $this->input->post('gameid'); //09
$middle_id = $this->input->post('netid'); //07
//$last_id will be generate automatically by sql
$forID = $front_id.$middle_id;
$sql = "INSERT INTO table ('colum') VALUES (".$forID.")"
答案 0 :(得分:6)
您必须手动插入新ID
$max_of_letsay1009 = mysql_result(mysql_query("select MAX(id) from table where id like '1009%'"),0);
// get the last 3 digits
$new_number = (int)substr($max_of_letsay1009,-3) + 1;
或者你也可以试试这个:
$new_id_of_letsay1009 = mysql_result(mysql_query("select MAX(id)+1 from table where id like '1009%'"),0);
这只是我的想法,尚未经过测试且没有错误检查
答案 1 :(得分:1)
您可以尝试以下查询
如果您的值是1009
SELECT MAX(RIGHT(ID,4))+1 FROM TableName WHERE LEFT(ID,4) = '1009'
它将返回该系列的最大数量。
尝试此查询以获取动态ID长度
SELECT MAX(RIGHT(ID,len(id)-LEN('1009')))+1 FROM #TEMP WHERE LEFT(ID,LEN('1009')) = '1009'
您也可以将此查询用作插入语句的ID列的子查询。
答案 2 :(得分:0)
如果它不是自动增量列,则可能。只需要在插入时写入逻辑。