Textfeld parsen

haiflosse

Benutzer
Beiträge
15
Ich habe ein Textfeld und möchte daraus mehrere Informationen herausholen.
Der Inhalt sieht wie folgt aus:
---------------
Projekt: Test
Zeit: 1.4.2016
Referent: Mustermann
Raum: 101
-------------------

Ich möchte aus diesem Text immer das Wort nach dem : also in meinem Fall das Wort "Test" in ein eigenes Feld, das Datum "1.4.2016" in ein eigenes Feld, den Namen "Mustermann" in ein eigenes Feld und den Raum "101" in ein eigenes Feld.

Ich wollte daher fragen, wie ich dies am Besten mit einem Mysql Kommando durchführen kann.
Vielen Dank für eine Antwort
 
Werbung:
Das richtige Konzept nennt sich Normalisierung. Das, was Du machst, nennt sich Murks. Dir hier zu helfen würde bedeuten, den Murks zu zementieren.
 
Ich zeig Dir es mal in PostgreSQL (und nur für die ersten 2 Werte):

Code:
test=*# select * from flosse ;
 id |  t
----+----------------------
  1 | Projekt: Test  +
  | Zeit: 1.4.2016  +
  | Referent: Mustermann+
  | Raum: 101
(1 row)

test=*# select id, array_to_string(projekt,'') as projekt, array_to_string(zeit,'') as zeit from (select id, array_agg(regexp_replace(val, '^.*: ','')) filter (where val ~ '^Projekt:') as projekt, array_agg(regexp_replace(val,'^.*: ','')) filter (where val ~'Zeit:') as zeit from (select id, regexp_split_to_table(t, '\n') as val from flosse) foo group by id) bla;
 id | projekt |  zeit
----+---------+----------
  1 | Test  | 1.4.2016
(1 row)

Nochmals: das ist absolut unsauber.
 
Werbung:
Zurück
Oben