我有一个基本的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,但没有成功.
有人有什么建议吗?谢谢.
像这样的东西应该工作并产生唯一的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)
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |