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

Einträge mit doppeltem Inhalt finden und updaten

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von andaluzo, 11 Mai 2013.

  1. andaluzo

    andaluzo Neuer Benutzer

    Hallo,

    ich würde gerne folgendes tun, in einer Tabelle mit
    mail,nid,id,active

    habe ich verschiedene Einträge die den gleichen Werte bei Mail enthalten, jedoch verschieden bei nid und active sind.

    Nun möchte ich alle die bei mail gleich sind und bei denen nid=1 ist active =0 setzen.

    Vielen Dank für eine Hilfestellung.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Was ist der Primary Key?
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Vielleicht reicht Dir schon das:

    Code:
    test=# select * from andaluzo ;
    mail | nid | id | active
    ------+-----+----+--------
    ich  |  1 |  1 | f
    ich  |  1 |  1 | t
    du  |  1 |  1 | f
    er  |  1 |  1 | t
    (4 rows)
     
    Time: 0,178 ms
    test=*# update andaluzo set active = false where mail in (select mail from andaluzo group by mail having count(*) > 1);
    UPDATE 2
    Time: 0,410 ms
    test=*# select * from andaluzo ;
    mail | nid | id | active
    ------+-----+----+--------
    du  |  1 |  1 | f
    er  |  1 |  1 | t
    ich  |  1 |  1 | f
    ich  |  1 |  1 | f
    (4 rows)
    

    Edit: noch im WHERE nid=1 einbauen...

    Andreas
     
  4. andaluzo

    andaluzo Neuer Benutzer

    Primary Key ist id

    Danke für die Hilfestellung werde ich gleich mal testen! ..
     
  5. andaluzo

    andaluzo Neuer Benutzer

    Ich bekomme da eine Fehlermeldung
    Code:
    #1093 - You can't specify target table 'wp_2_wpr_subscribers' for update in FROM clause
    die Abfrage lautete

    Code:
    UPDATE
     
    wp_2_wpr_subscribers
     
    SET active='0'
     
    WHERE
     
    mail in (SELECT mail from wp_2_wpr_subscribers group by mail having count(*) > 1); 
     
  6. akretschmer

    akretschmer Datenbank-Guru

    Ach ja, stimmt, das kann MySQL nicht, ich verwende ja PostgreSQL. Notfalls mußt halt erst mal das SELECT machen und daraus dann in PHP oder wo auch immer Du programmierst das Update zusammenfrickeln.
     
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