[MySQL 4.0] Produkt-ID mit 2 Buchstaben vorweg jedoch inkreminentiell

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MySQL 4.0] Produkt-ID mit 2 Buchstaben vorweg jedoch inkreminentiell

    Hallo Community,

    ich habe mal wieder ein Problem.
    Und zwar muss ich Artikelnummern vergeben.

    Diese sollen jedoch folgendermaßen aussehen:

    XX0000

    XX sind zwei Buchstaben, die festgelegt sind.
    Nun soll aber für jede Buchstabenkombination hochgezählt werden, so dass alle Buchstabenkombinationen 0001, und so weiter haben.

    Wie ist sowas zu realisieren?

    Ciao
    Henning

  • #2
    ich spontan fällt mir da as in der richtung ein:

    Code:
    INSERT INTO tbl (ID, ...)
       VALUES( (SELECT RIGHT(ID,4)
                FROM tbl
                WHERE ID LIKE '$deine_buchstabehn%'
                LIMIT 1
                ORDER BY ID DESC) + 1 ), ....

    Kommentar


    • #3
      Naja, aber dann könnte es passieren, dass die ID doppelt vorkommt.
      Hat noch jemand eine Lösung?

      Danke!

      Kommentar


      • #4
        Inkrementell geht das m.W. nicht.
        Besser: Ganz normales inkrementelles INT-Feld und dann den Präfix (samt führender Nullen) in der Ausgabe dranhängen.

        EDIT:

        EDIT: Quark, hab den Post zu schnell gelesen....
        Zonthors Ansatz ist doch schon gut. Und doppelte dürften dabei auch nicht vorkommen - schließlich wird immer der nächsthöhere ausgewählt.


        Kommentar


        • #5
          Problem ist, dass dann 1 nicht bei jedem Prefix existiert :-?

          Kommentar


          • #6
            Da hast Du natürlich recht.
            Lösung für Faule: Vorher mit PHP die Query machen
            Saubere Lösung: IF()-Statement in der Query (also wenn die Abfrage ein Ergebnis liefert, dann zähle hoch, ansonsten beginne mit 1).

            Warnung: Subselects gehen erst ab mySQL 4.1! Falls das Skript also portierbar sein muß, wäre die PHP-Lösung auf jeden Fall sicherer.

            Kommentar


            • #7
              Ja, aber ich brauch:

              XX00001
              YY00001

              Das ist das Problem!

              Edit:

              Hab grad erst deinen Post gesehen.
              Das heißt, dass zwar ein Feld inkreminentiell ist und hochzählt (auto increment), ein zweites feld jedoch mit einer solchen productID gefüllt wird?

              Gute Idee

              Kommentar


              • #8
                Basteln!

                Kommentar


                • #9
                  Es ginge doch auch so, dass ich pro Buchstabenkombination den Startwert speichere, oder? Wäre doch umso einfacher.... Wenn ein Artikel gelöscht wird, wird die ProduktID eh nicht nochmal benutzt!

                  Kommentar


                  • #10
                    Klar!

                    Kommentar


                    • #11
                      Danke

                      Kommentar

                      Lädt...
                      X