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

2 Werte aus einem String auslesen...

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Manu_94, 31 März 2015.

  1. Manu_94

    Manu_94 Neuer Benutzer

    Hallo Forum,

    ich habe eine Shopseite, (Joomla, Virtuemart + MySQL) hier schicke ich via Datenbank - Abfrage der Buchhaltung jeden Monat die Bestellungen der Kollegen. Auf dieser Shopseite sind noch selbsterstellte Felder (Uhrzeit + Gast + Firma) wenn ich diesen Table exportiere bekomme ich einen einzigen String. Aus diesem String brauche ich aber nur sofern vorhanden den Gast-Namen und den Namen der Firma.

    So sieht diese Ausgabe ohne Gast-Namen und Firmen-Namen aus:
    {"988":" <span class=\"costumTitle\">Uhrzeit:<\/span><span class=\"costumValue\" >12:45 Uhr<\/span>","1145":{"textinput":{"comment":""}},"1146":{"textinput":{"comment":""}}}


    Wenn jemand einen Gast-Namen + den Namen der Firma einträgt sieht es so aus:
    (Änderung zum vorigen, FETT gekennzeichnet)

    {"988":" <span class=\"costumTitle\">Uhrzeit:<\/span><span class=\"costumValue\" >12:45 Uhr<\/span>","1145":{"textinput":{"comment":"Max Mustermann"}},"1146":{"textinput":{"comment":"Musterhausen GmbH"}}}

    Hat hier jemand eine Idee wie ich es hinbekomme nur die jeweiligen Namen falls sie eingetragen sind mit auszugeben?

    Danke schon mal im Voraus.

    Gruß
    Manu_94
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Prinzipiell mit regulären Ausdrücken möglich aber a) ist MySQL diesbezüglich nicht grade sonderlich fitt und zum anderen:

    Du machst von Design etwas massiv falsch. Der Datentype TEXT existiert nicht, um in einem Textfeld sowohl ganze Webseiten als auch Metadaten wie Name, Vorname und Firma zu speichern.

    Mein Rat: tritt das ganze gepflegt in die Tonne.

    Ansonsten: es gibt Tools, die aus HTML auch text machen können, den man dann vielleicht mit sed oder awk einfacher parsen kann wie das reine HTML.
     
    Walter gefällt das.
  3. akretschmer

    akretschmer Datenbank-Guru

    Code:
    test=*# select regexp_replace(regexp_replace(info,'^.*comment":"',''),'"}}','') from (select * from (select regexp_split_to_table('{"988":" <span class=\"costumTitle\">Uhrzeit:<\/span><span class=\"costumValue\" >12:45 Uhr<\/span>","1145":{"textinput":{"comment":"Max Mustermann"}},"1146":{"textinput":{"comment":"Musterhausen GmbH"}}}',',') info) foo where info ~ 'comment') bla;
      regexp_replace
    --------------------
     Max Mustermann
     Musterhausen GmbH}
    (2 rows)
    
    nur mal so ...
     
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