cari

Rumah  >  Soal Jawab  >  teks badan

Cipta ID unik berdasarkan nilai dalam baris dalam MySQL

Saya sedang mencipta aplikasi web untuk projek genealogi. Saya mahu setiap orang yang ditambahkan pada pangkalan data mempunyai ID unik berdasarkan 3 aksara pertama nama keluarga mereka (demi penjelasan, mari kita panggil ia "rentetan nama akhir"), dengan kenaikan automatik (dari 00001 mewakili setiap "rentetan nama keluarga" yang unik).

Contoh - Nama keluarga seseorang ialah "Smith". Rentetan nama akhir ialah SMI, dan kerana ia adalah rentetan nama akhir pertama "SMI", rujukan penuh ialah SMI00001. Nama keluarga orang lain ialah Hitam, jadi rentetan nama keluarga mereka ialah BLA, dan kerana mereka adalah orang pertama yang mempunyai rentetan nama keluarga BLA, rujukan mereka ialah BLA00001. Nama keluarga ketiga juga ialah Smith - mereka adalah orang kedua dengan rentetan nama keluarga SMI, jadi nombor rujukan mereka hendaklah SMI00002.

ID unik ini akan digunakan dalam URL orang untuk mencari orang dalam pangkalan data dan mewujudkan hubungan antara orang.

Saya tidak tahu bagaimana untuk menyelesaikan masalah ini secara logik.

Saya belum mencuba apa-apa lagi. Ini di luar imaginasi saya!

P粉541796322P粉541796322337 hari yang lalu352

membalas semua(1)saya akan balas

  • P粉225961749

    P粉2259617492023-12-28 00:08:17

    Kaedah ini adalah kasar, biasanya anda harus menggunakan auto-increment (nombor) pangkalan data atau auto-jana ID unik, seperti md5(time().'randomsalt'.$username).

    Tetapi jika anda perlu menggunakan format XXX00000, anda memerlukan fungsi berikut:

    • Semak jika terdapat BLA00001 dalam pangkalan data
    • Jika ya, sila semak BLA00002 dsb.
    • Jika tidak, buat entri baharu

    Ini akan menjadi sangat perlahan selepas beberapa ketika, dan setiap nama akan mempunyai maksimum 99999 peluang untuk wujud, selepas itu anda perlu menukar BLA kepada BL1, BL2, dsb.

    balas
    0
  • Batalbalas