自动生成的数字在任何c# / ASP.. Net / Javascript/ MySQL)

本文关键字:ASP Net MySQL Javascript 数字 任何 自动生成 | 更新日期: 2023-09-27 18:08:12

我们正在创建 c#, ASP。应用程序。我需要创建自动生成ID的取决于5组&显示在文本框

假设有5组,(1000 -2000是自动生成 No的Number Range)

Group 1 ---> 1000-2000
Group 2 ---> 2001-3000
Group 3 ---> 3001-4000
Group 4 ---> 4001-5000
Group 5 ---> 5001-6000

对于组1,第一个记录号为1000,下一个记录号为1001。但如果用户输入1500,则必须输入相同的no,但在此之后,下一次autogeneratedno将是1002而不是1501

这个逻辑应该如何实现。

自动生成的数字在任何c# / ASP.. Net / Javascript/ MySQL)

在mysql中可以这样做

SELECT
  IF(MIN(myId) is null, @minimum, MIN(myId) + 1) AS nextId 
FROM
  myTable t1
    LEFT JOIN myTable t2
      ON t2.myId = (t1.myId + 1)
WHERE
  t2.myId is null
  AND t1.myId >= @minimum
LIMIT
  1

@minimum应该是组范围的开始(例如1000,2000等)

在其他语言中,我建议使用简单的for循环

实现预期结果的一种方法是使用一个方法只跟踪自动生成的id。只有当用户没有输入自己的ID时,才应该调用这个方法。如果用户输入自己的ID,则不要调用自动生成方法。

这将很好地工作,直到自动生成的ID上升到一个比某个用户选择的ID小1的ID。如果自动生成尝试在那里工作,它将生成一个已经存在于系统中的ID。

因此,您将需要在自动生成方法中添加逻辑,以便在这种情况下进一步增加。直到找到一个有效的ID。