Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Zahl aus Memofeld auslesen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von heinladmin, 17 Dezember 2012.

  1. heinladmin

    heinladmin Neuer Benutzer

    Hallo zusammen,

    ich hoffe hier kann mir jmd bei meinem Problem helfen. Ich muss für eine Auswertung eine Zahl aus einem Memofeld auslesen um mit Dieser dann Berechnungen durchzuführen. Der Inhalt kann folgendermaßen aussehen:

    [​IMG]

    Es geht immer um die Zahl die hinter "Z =" steht. Sie kann 2, 3 oder 4 stellig sein. Vor der Zahl und hinter der Zahl ist immer ein Leerzeichen. Ich bin kein allzu erfahrener SQL-Freak, wahrscheinlich ist das Ganze gar nicht so schwer.

    Über eure Hilfe wäre ich euch sehr dankbar!

    Beste Grüße,
    heinladmin
     
  2. ukulele

    ukulele Datenbank-Guru

    Also in MS SQL würde ich das in etwa so probieren:
    Code:
    DECLARE    @a VARCHAR(1000)
     
    SET        @a = 'asdfgughwigfuhwefiuhefi wefwufw\par Z = 500 / 0,5 adasdasd'
     
    SELECT    right(@a,len(@a)-patindex('% Z = %',@a)-4)
    SELECT    cast(left(right(@a,len(@a)-patindex('% Z = %',@a)-4),charindex(' ',right(@a,len(@a)-patindex('% Z = %',@a)-4))-1) AS INT)
    Die Funktionen heißen in MySQL allerdings anders, charindex() ist z.B. substring_index(), das Prinzip ist aber das selbe. Du musst deine Spalte (in meinem Testscript die Variable @a) aufbröseln und nach möglichst eindeutigen Zeichenketten suchen die immer vorkommen um den überflüssigen Text weg zu schneiden. Auch bin ich mir nicht ganz sicher ob der Memo Datentyp (Longtext?) das so zulässt. Und, sobald du einen Eintrag ohne Z = hast läufst du möglicherweise auf einen Fehler den es abzufangen gilt.
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Sicherlich ist das machbar, vielleicht sogar in MySQL. Aber das willst Du nicht so. Du willst eine 'richtige' Tabellenstruktur haben, nicht so einen Quark. Für das, was Du da hast, etwas zu frickeln ist mehr Aufwand, als es richtig zu machen. Die anderen Zahlen hinter dem Z haben vielleicht auch noch eine Bedeutung, vielliecht auch, ob es verzinkt und/oder beschichtet ist. Morgen suchst Du vielleicht nach diesen Eigenschaften.

    Auch wenn MySQL als 'Zettelkasten' verpöhnt ist, muß man es nicht so nutzen. Dir jetzt bei Deinem Problem zu helfen ist also eher kontraproduktiv, weil Du Deine kaputte Lösung damit nur zementierst.


    Andreas
     
  4. ukulele

    ukulele Datenbank-Guru

    Manchmal hat man nur leider keinen Einfluss auf die eigentliche Anwendung sondern will nur Daten aus dieser auslesen. Generell hast du natürlich recht aber für die Umstellung braucht man auch ein derartiges Script.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    ACK.

    Ich denke, wir warten nun einfach, ob sich der Fragesteller noch mal meldet ...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden