Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add new last number automatically mysql

Tags:

php

mysql

I have this id number in one column of my table,

0907003
0907004 
0907005

1008005 
1008006
1008007

1009001 
1009002
1009003 

When I add new value of 1009, it will add last three number of 004 because the last number begin with 1009 (10-09) is 003.

Or if I add new value of 1008, it will add last three number of 008
because the last number begin with 1008 (10-08) is 007.

Or if I add new value of 0907, it will add last three number of 006
because the last number begin with 0907 (09-07) is 007.

How to do this?

Many thanks in advance!

$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.")"
like image 896
iyal Avatar asked Apr 21 '15 07:04

iyal


People also ask

How do I automatically generate numbers in MySQL?

In MySQL, the syntax to change the starting value for an AUTO_INCREMENT column using the ALTER TABLE statement is: ALTER TABLE table_name AUTO_INCREMENT = start_value; table_name.

How can I get next auto increment number in MySQL?

MySQL has the AUTO_INCREMENT keyword to perform auto-increment. The starting value for AUTO_INCREMENT is 1, which is the default. It will get increment by 1 for each new record. To get the next auto increment id in MySQL, we can use the function last_insert_id() from MySQL or auto_increment with SELECT.

Can I add auto increment to existing column MySQL?

You can add auto_increment to a column in MySQL database with the help of ALTER command.

What is auto increment in MySQL?

Auto-increment allows a unique number to be generated automatically when a new record is inserted into a table. Often this is the primary key field that we would like to be created automatically every time a new record is inserted.


2 Answers

You have to insert new id manually

    $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;

or you can try this too:

    $new_id_of_letsay1009 = mysql_result(mysql_query("select MAX(id)+1 from table where id like '1009%'"),0);

this is just my idea, not yet tested and no error checking

like image 131
Eng Cy Avatar answered Sep 21 '22 14:09

Eng Cy


You try this below query

If your value is 1009

SELECT MAX(RIGHT(ID,4))+1 FROM TableName WHERE LEFT(ID,4) = '1009'

It will return the max number of that series.

Try this query for dynamic ID length

SELECT MAX(RIGHT(ID,len(id)-LEN('1009')))+1 FROM #TEMP WHERE LEFT(ID,LEN('1009')) = '1009'

You can also use this query as sub query for the insert statement's ID column.

like image 40
Rajasekar Gunasekaran Avatar answered Sep 21 '22 14:09

Rajasekar Gunasekaran