Einträge updaten ...

  • Ich möchte gerne zwei Mailadressen in eine bestehende DB in ein Feld eintragen

    so habe ich es probiert:

    update db set feld13 =('email1.de','email2.de') where feld01='1008';

    das geht aber leider nicht ...
    Fehler: Operand should contain 1 column ...

    Wie schaffe ich es , 2 Einträge in das Feld13 einzutragen ?


    1008#email1.de
    1008#email2.de

    1008=feld01
    mailadresse=feld13

    Die dazugehörige DB hat folgende Struktur:
    +--------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +--------------+--------------+------+-----+---------+-------+
    | feld01 | varchar(8) | NO | | | |
    | feld02 | varchar(40) | NO | PRI | | |
    | feld03 | varchar(16) | NO | PRI | | |
    | feld04 | varchar(64) | NO | PRI | | |
    | feld05 | varchar(32) | NO | PRI | | |
    | feld06 | varchar(32) | NO | PRI | | |
    | feld07 | varchar(32) | NO | PRI | | |
    | feld08 | varchar(32) | NO | PRI | | |
    | feld09 | varchar(16) | YES | | NULL | |
    | feld10 | varchar(16) | NO | PRI | | |
    | feld11 | varchar(3) | NO | PRI | | |
    | feld12 | varchar(2) | NO | | | |
    | feld13 | varchar(256) | YES | | NULL | |
    | feld14 | varchar(128) | YES | | NULL | |
    +--------------+--------------+------+-----+---------+-------+

    Vielen Dank vorab für Hilfe

  • also, du solltest schon normalformen beachten, dass heisst unter anderem, dass die einträge atomar sein sollen
    --> nur ein eintrag pro feld
    und wenn ich das richtig lese, hast du ja nen ganzen haufen primary_keys ?
    wozu das ganze ? man hat einen prim_key und des wars
    ist das ne mysql-datenbank ? 0o
    und wenn du da 2 eintragen musst, dann halt nur als einen eintrag
    also
    SET feld13 = 'email.de, email2.de' WHERE
    aber ich rate davon ab!

    http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Zitat


    und wenn ich das richtig lese, hast du ja nen ganzen haufen primary_keys ?
    wozu das ganze ? man hat einen prim_key und des wars
    ist das ne mysql-datenbank ? 0o
    und wenn du da 2 eintragen musst, dann halt nur als einen eintrag
    also

    Ja, es ist eine Datenbank,
    primary-keys deswegen, weil diese Felder eindeutig sein müssen, nicht aber Feld13, das kann mehrere Einträge haben

  • Wenn ich folgendes mache

    update dbname set feld13 ='ddd1.de, ffff1.de' where feld1 ='1008';

    werde in die dbname richtigerweise beide Adressen reingeschrieben.
    Wie mache ich es, wenn z.B. am nächsten Tag eine weiter hinzukommt ?

    Wenn ich dann wieder mache:

    update dbname set feld13 ='ccc1.de' where feld1 ='1008';

    Dann sind ja die beiden 'ddd1.de, ffff1.de' vom Vortag weg ? ....

    Wie geht es , dass die drinne bleiben ?

  • ja, und schon hast du ein problem, weil du dich nicht an die normalformen hälst ;)

    +--------------+--------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +--------------+--------------+------+-----+---------+-------+
    |id | int(11) | NOT NULL | primary_key | auto_increment | | |
    | feld01 | varchar(8 ) | NO | | | |
    | feld02 | varchar(40) | NO | | | |
    | feld03 | varchar(16) | NO | | | |
    | feld04 | varchar(64) | NO | | | |
    | feld05 | varchar(32) | NO | | | |
    | feld06 | varchar(32) | NO | | | |
    | feld07 | varchar(32) | NO | | | |
    | feld08 | varchar(32) | NO | | | |
    | feld09 | varchar(16) | YES | | NULL | |
    | feld10 | varchar(16) | NO | | | |
    | feld11 | varchar(3) | NO | | | |
    | feld12 | varchar(2) | NO | | | |
    | feld14 | varchar(128) | YES | | NULL | |
    +--------------+--------------+------+-----+---------+-------+

    neue tabelle (die 2.) :

    id int(11) auto_inc prim_key
    f_id int(11) <------ die zugehörige id aus der ersten tabelle
    feld12 varchar()

    damit kannst du beliebig viele einträge machen an der stelle feld13

    du kannst nich imemr alles in einer tabelle realisieren, und die normalformen sind schon wichtig
    die 1. & 2. sollten immer eingehalten werden..
    was danach sinnvoll ist, muss man für sich selbst sehen

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!