自动递增ID为4位数

时间:2017-09-02 07:16:55

标签: php mysql algorithm

我正在创建自动增量客户ID ,以 4位数字存储在数据库中。

  
      
  1. 如果我只使用数字,那么它很简单,但我只有 9999个用户。最后它将是 10 ^ 4 ,这是等于至    10000 客户

  2.   
  3. 如果我还包含 26个字母的字母。那么最后它将是 36 ^ 4 ,这等于 1679616客户< /强>

  4.   

使用字母和数字可以为客户存储150万IDS。

以下是它的工作原理......

  

0001

     

0002

     

     

     

。 0009

     

000A

     

000B

     

     

     

     

000z

     

0010

     

0011

     

     

     

     

0019

     

001A

     

001B

     

     

     

001z

     

0020

     

     

aaa9。

     

aaaz

     

aab0

     

     

     

最后是zzzz

我在android和java中创建了这段代码........

void increment() {
        chars = mIds.getText().toString().toCharArray();
        String value = "" + getId(chars[3], 3);
        data = chars[0] + "" + chars[1] + "" + chars[2]  + "" + value + "";
        mIds.setText(data + " ");
    }

    private String getId(char aChar, int i) {
        if (Character.getNumericValue(aChar) == 9)
            return 'a' + "";
        else if (aChar == 'z') {
            i = i - 1;
            chars[i] = getId(chars[i], i).charAt(0);
            return '0' + "";
        } else {
            int num = (int) aChar;
            aChar = (char) (++num);
            return aChar + "";
        }
    }

寻找有助于我的任何算法或任何代码......

如果解决方案进入MySQLPHP .....

,那真的很有用

感谢所有人....

1 个答案:

答案 0 :(得分:1)

将id设为varchar并使用php制作像这样的ID

<?php
for($i=0;$i<10+27;$i++){
  $number = base_convert($i,10,10+26);//here 26 is for a-z
  $number = str_pad($number, 4, '0', STR_PAD_LEFT);
  echo " ".$number;
}
?>

现场演示:https://eval.in/854013

我希望你可以获得last inserted id,然后按照上面的循环将id增加1来插入新记录。

以上php代码的输出是:

  0000 0001 0002 0003 0004 0005 0006 0007 0008 0009 000a 000 000 000 000 000   000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000   000s 000t 000u 000v 000w 000x 000y 000z 0010