-2

我们正在创建C#、ASP.Net应用程序。我需要根据 5 个组创建自动生成 ID 并将其显示在文本框中

假设有5 个组,(1000 -2000 是自动生成 No的数字范围)

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,但之后下一次自动生成的 no 将是 1002 而不是 1501。

这个逻辑应该如何实现。任何帮助将不胜感激。

4

2 回答 2

0

在 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 循环

于 2013-04-08T07:44:51.197 回答
0

实现所需结果的一种方法是使用一种仅跟踪自动生成的 ID 的方法。仅当用户未输入自己的 ID 时才应调用此方法。如果用户输入他们自己的 ID,请不要调用自动生成方法。

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

因此,您将需要自动生成方法中的逻辑,以便在这种情况下进一步增加。直到获得有效身份证件。

于 2019-10-01T08:43:04.287 回答