Roger: /MySQL mit regulären Ausdrücken?

Hallo!

Ich habe in einer DB-Tabelle in einem Textfeld einen serialisierten Array gespeichert, aus dem ich mittels SQL-Befehl (nicht über PHP-Funktionen) Zahlen extrahieren möchte. Das Muster ist immer gleich:

...{s:4:"name";s:23:"85,00mm x 31,87mm (BxH)";}...

Dabei benötige ich die beiden Zahlen 85,00 und 31,87 (am liebsten mit Punkt, statt Komma). Die Zahlen können natürlich variieren zw. 0 und unendlich), es sind aber immer 2 Nachkommastellen. Gleich bleiben die Anführungszeichen, das "x" und "(BxT)". Die Einheit kann sich leider auch ändern.

MySQL kann doch auch RegExp, aber mit dessen Einsatz bin ich nicht wirklich gut vertraut.

Hat jemand einen Ansatz für mich? Danke!

Gruß,
Roger.

--
::Werbung:: Newsletter Software @ PHP+MySQL ::Werbung::
  1. Hallo Roger,

    Ich habe in einer DB-Tabelle in einem Textfeld einen serialisierten Array gespeichert, aus dem ich mittels SQL-Befehl (nicht über PHP-Funktionen) Zahlen extrahieren möchte.

    Du hast somit ein kaputtes Tabellendesign. Korrigiere dieses und Dein Problem verschwindet von selbst.

    Das Muster ist immer gleich:

    ...{s:4:"name";s:23:"85,00mm x 31,87mm (BxH)";}...

    Dabei benötige ich die beiden Zahlen 85,00 und 31,87 (am liebsten mit Punkt, statt Komma). Die Zahlen können natürlich variieren zw. 0 und unendlich), es sind aber immer 2 Nachkommastellen. Gleich bleiben die Anführungszeichen, das "x" und "(BxT)".

    Würgherum: Durchlaufe in einer Stored Procedure den Feldinhalt und gehe mit Zeichenkettenfunktionen Schritt für Schritt durch jedes einzelne Feld.

    MySQL kann doch auch RegExp,

    Ja, aber sie sind ...

    aber mit dessen Einsatz bin ich nicht wirklich gut vertraut.

    ... nicht für Dein Ziel geeignet:
    MySQL-Handbuch, Abschnitt Reguläre Ausdrücke.

    Daher nochmals mein Hinweis:
    Repariere Dein kaputtes Tabellendesign. Alles andere ist Unsinn.

    Freundliche Grüße

    Vinzenz

    1. Hallo!

      Du hast somit ein kaputtes Tabellendesign. Korrigiere dieses und Dein Problem verschwindet von selbst.

      Kaputt ist wohl etwas harsch :)
      Es funktioniert ja alles. Die Applikation ist eben gewachsen und jeder hat mal drin rum gefummelt. Das Budget ist klein. Und: "Machen Sie mal schnell, Sie können das doch!"

      Ein bestehendes komplexes System zu verändern ist leider nicht immer so einfach umzusetzen...

      Gruß,
      Roger.

      --
      ::Werbung:: Newsletter Software @ PHP+MySQL ::Werbung::
      1. Mahlzeit,

        Du hast somit ein kaputtes Tabellendesign. Korrigiere dieses und Dein Problem verschwindet von selbst.

        Kaputt ist wohl etwas harsch :)

        Das mag sein ... aber korrekt. :-)

        Es funktioniert ja alles. Die Applikation ist eben gewachsen und jeder hat mal drin rum gefummelt. Das Budget ist klein. Und: "Machen Sie mal schnell, Sie können das doch!"

        Kennen wir (fast) alle, denke ich mal. Das ändert aber nichts daran, dass das Tabellendesign kaputt ist und sinnvollerweise - insbesondere wenn das alles noch länger produktiv sein soll und noch weitere Änderungen/Ergänzugen absehbar sind - repariert werden sollte.

        Ein bestehendes komplexes System zu verändern ist leider nicht immer so einfach umzusetzen...

        Sicher nicht. Das Problem habe ich auch zur Zeit. Aber man macht es sich auf Dauer nur schwerer, wenn man derartige Probleme ignoriert oder ständig Workarounds frickelt, die im Endeffekt alles nur komplizierter und langsamer machen.

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Hallo!

          Sicher nicht. Das Problem habe ich auch zur Zeit. Aber man macht es sich auf Dauer nur schwerer, wenn man derartige Probleme ignoriert oder ständig Workarounds frickelt, die im Endeffekt alles nur komplizierter und langsamer machen.

          Wohl war. Ich sitz' auch schon dran und fummel. Wenn man als Programmierer nur nicht immer so faul wäre...

          Gruß,
          Roger.

          --
          ::Werbung:: Newsletter Software @ PHP+MySQL ::Werbung::