为了账号安全,请及时绑定邮箱和手机立即绑定

我想生成一个以 35801 开头的唯一 ID

我想生成一个以 35801 开头的唯一 ID

PHP
倚天杖 2021-11-13 16:49:47
数据库中有一个名为 add_sample 的表来存储学生样本记录。我正在根据 auto_increment id 存储插入的信息,但现在我想为第一个输入他/她的数据的学生分配一个像 35801 这样的唯一 id 而不是那个 auto_increment id(例如 1.)。第二个用户应该是 35802,第三个用户应该是 35803,依此类推直到 99。但是当学生人数达到 100 时,它应该将 100 添加到 3580 以开始一个新的系列 36801。我期待这样:unique ID  |   Name   |  Email          |   Number_of_Sample | sample_Type    35801  |   john   | john@gmail.com  |   3                | fiber      unique ID  |   Name   |  Email          |   Number_of_Sample | sample_Type    35801  |   john   |  john@gmail.com |   3                | fiber          35802  |   sam    |  sam@gmail.com  |   1                | yarn    
查看完整描述

2 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

您可以 & 应该继续使用auto-incrementID,但更改值以从您想要开始的任何值开始,如下所示:

ALTER TABLE `add_sample` AUTO_INCREMENT=35800;


查看完整回答
反对 回复 2021-11-13
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以使用 PHP 函数将数据库中存在的自动增量 ID 转换为新的唯一 ID。


<?php


function getSpecialSampleId($autoIncrementId)

{

    $uptoHunderd  = $autoIncrementId % 100;

    $aboveHunderd = $autoIncrementId - $uptoHunderd;

    return 35800 + 10 * $aboveHunderd + $uptoHunderd;

}


echo getSpecialSampleId(1) . "<br>";

echo getSpecialSampleId(2) . "<br>";

echo getSpecialSampleId(3) . "<br>";

echo getSpecialSampleId(99) . "<br>";

echo getSpecialSampleId(100) . "<br>";

echo getSpecialSampleId(101) . "<br>";

echo getSpecialSampleId(250) . "<br>";

echo getSpecialSampleId(1555) . "<br>";

这将输出:


35801

35802

35803

35899

36800

36801

37850

50855

您可以使用此函数将这个特殊的样本 id 输出到外界,同时在您的数据库中保持正常的自动递增 id。


查看完整回答
反对 回复 2021-11-13
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信