根據MySQL的行中的值建立唯一ID
P粉541796322
P粉541796322 2023-12-27 10:06:21
0
1
375

我正在為一個家譜專案建立一個 Web 應用程式。我希望添加到資料庫中的每個人都有一個唯一的ID,該ID 基於其姓氏的前3 個字元(為了解釋起見,我們稱之為“姓氏字串”),並與自動增量(從00001代表每個唯一的“姓氏字串”)。

例如 - 一個人的姓氏是「Smith」。姓氏字串將為 SMI,並且由於它們是第一個姓氏字串“SMI”,因此完整參考將為 SMI00001。另一個人的姓氏是 Black,因此他們的姓氏字串為 BLA,並且因為他們是第一個具有姓氏字串 BLA 的人,所以他們的參考將是 BLA00001。第三個人的姓氏也是 Smith - 他們是第二個具有 SMI 姓氏字串的人,因此他們的參考號碼應該是 SMI00002。

此唯一 ID 將在人員 URL 中使用,供資料庫中的人員搜尋並在人員之間建立關係。

我不知道如何從邏輯上解決這個問題。

我還沒有嘗試過任何東西。這超出了我的想像!

P粉541796322
P粉541796322

全部回覆(1)
P粉225961749

此方法比較粗略,通常您應該使用資料庫自動遞增(數字)或自動產生唯一 ID,例如 md5(time().'randomsalt'.$username)。

但是如果您必須使用 XXX00000 格式,您將需要以下功能:

  • 檢查資料庫中是否有BLA00001
  • 如果是,請檢查 BLA00002 等。
  • 如果否,則建立新條目

一段時間後這會非常慢,而且每個名字最多有 99999 次存在的機會,之後你需要將 BLA 更改為 BL1、BL2 等。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板