从MySQL/PHP中的数字ID生成字母数字ID

Jam*_*cun 1 php mysql

我有一个基本的MySQL数据库,其中每一行都分配了一个唯一的递增ID号,但是我也希望每一行都有一个唯一的6个字符,字母数字ID也会递增.例:

Row 1: ID = 1, Name = AAAAAA
Row 2: ID = 2, Name = AAAAAB
Row 3: ID = 3, Name = AAAAAC
Run Code Online (Sandbox Code Playgroud)

数据库是通过PHP添加的,因此可以通过PHP和纯SQL完成.

到目前为止,我一直在尝试构建一个PHP函数,它可以将数字ID转换为AlphaNumeric ID,但没有成功.

有人有什么建议吗?谢谢.

Tat*_*nen 6

像这样的东西应该工作并产生唯一的ID(只产生字母):

function alphaID($n)
{
    for($r = ""; $n >= 0; $n = intval($n / 26) - 1)
        $r = chr($n%26 + 0x41) . $r;
    return str_pad($r, 6, 'A', STR_PAD_LEFT);
}

echo alphaID(0); // returns "AAAAAA"
echo alphaID(1); // returns "AAAAAB"
...
echo alphaID(8652); // returns "AAALTU"
Run Code Online (Sandbox Code Playgroud)