Teilstring aus Spalte auslesen und danach sortieren

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

  • Teilstring aus Spalte auslesen und danach sortieren

    Hallo zusammen,

    ich hätte da gern ein Problem.

    Und zwar muss ich eine Tabelle sortieren, nach einem Teilstring einer Spalte dieser Tabelle.
    Beispiel:
    Spalte x enthält bei Datensatz y: startid-1;endid-99;anzahl-156;
    Spalte x enthält bei Datensatz z: startid-5;endid-183;anzahl-262;

    Jetzt muss ich nach der endid sortieren. Ich habe allerdings keine Ahnung, wie ich an die 99 bzw. 183 kommen soll.
    Ich muss in meine Query einen Subselect einbauen. Das ist mir klar, aber das Problem ist, dass mein Suchstring keine feste Position und keine feste Länge hat. Einzig die Bezeichnung und das Trennzeichen dahinter sind gleich.

    Wenn einer von euch eine Idee hat wäre ich sehr dankbar.
    it's not a bug,
    it's a feature!

  • #2
    als erstes solltest du deine tabelle normalisieren, d.h. mach drei spalten, start-id, end-id,anzahl. dann kannst du wunderbar mit order by arbeiten.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Das ist ja mein Problem, das geht nicht. Die Spalte x enthalt Zusatznformationen und die kommen da als ein Paket rein.

      Normalisierung ist hier nicht möglich, weil meine Tabelle sonst rund 150 Spalten hätte.
      it's not a bug,
      it's a feature!

      Kommentar


      • #4
        weil meine Tabelle sonst rund 150 Spalten hätte.
        lieber 150 spalten mit einzelnen daten, als 150 daten in einer spalte. wie willst du da was finden? das mit der normalisierung hat schon seinen grund.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          mysql kann auch regex - die Performance ist natürlich grottig.

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            Wie schon gesagt ich kann die Tabelle nicht weiter normalisieren.
            Habs aber hingekriegt (s.u.).
            Code:
            (IF(zusatzinfo REGEXP 'endid-',
               SUBSTRING_INDEX(SUBSTRING_INDEX( zusatzinfo,'endid-', -1),';',1),
               0
               )
            ) AS endid
            it's not a bug,
            it's a feature!

            Kommentar

            Lädt...
            X