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

Herusfiltern von Informationen aus einem Feld

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von settusblake, 29 Juli 2013.

  1. settusblake

    settusblake Neuer Benutzer

    Hallo allerseits!

    ich habe ein Feld Value in einer Tabelle in der Informationen zu einem Massenmail gespeichert werden. In diesem Feld steht die gesamte E-Mail drin. Unter anderem auch die E-Mail Adresse des Empfängers.
    In einer anderen Tabelle habe ich die User inkl. E-Mail drin stehen. Gibt es eine Möglichkeit, die E-Mail Adresse aus dem Feld Value raus zu filtern und dann mit der Tabelle Users zu joinen?

    lg
     
  2. akretschmer

    akretschmer Datenbank-Guru


    Ganz schlechte Idee, die Du vergessen solltest. Normalisiere stattdessen Deine Tabellen.

    Du hast:
    Code:
    test=*# select * from foo1;
    id |                          t
    ----+-------------------------------------------------------
      1 | belangloser text mit einer mail@adresse.tld drin
      2 | noch so ein schrottiger datensatz fue ziel@domain.tld
    (2 rows)
     
    test=*# select * from foo2;
    id |      mail
    ----+------------------
      1 | mail@adresse.tld
      2 | ziel@domain.tld
    (2 rows)
    
    Lösung:

    Code:
    test=*# select bla.*, foo2.* from (select * from (select id, regexp_split_to_table(t,E'\\s+') r from foo1) bla where r ~ '@') bla left join foo2 on bla.r=foo2.mail;
    id |        r        | id |      mail
    ----+------------------+----+------------------
      1 | mail@adresse.tld |  1 | mail@adresse.tld
      2 | ziel@domain.tld  |  2 | ziel@domain.tld
    (2 rows)
    
    Versuch lieber nicht zu verstehen, wie das geht, und auch nicht, es mit MySQL nachzubauen ;-)
     
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