Brauche Hilfe bei spezielle mysql replace oder update

  • moin.. komme an einer sache nicht weiter und weis auch nicht ob sowas möglich wäre,
    benötige eine replace oder update befehl php oder direct in mysql
    zbs find all by name replace id mit der selben ersten id (oder zu einer neuen id die größer ist als) die aber die selbe id nummer hat bei doppelte namen)
    habe doppelte name mit unterschiedliche id´s die aber zu einer id sollen.
    thx for help:)



  • Ich könnte dir kurzfristig nur mit einer Idee helfen:


    (PHP)
    Alle Namen mit ID's abfragen, Array auf identische Strings prüfen, betroffene ID ersetzen.
    Ist machbar, kann dir jetzt aber nicht in Kürze ein Script raushauen :roll:

  • UPDATE tabelle SET id = $id WHERE id1 = $id1


    Setze den Wert der zu kopierenden 'id' in '$id' und überschreibe damit 'id' in der Zeile mit der betroffenen 'id1'

  • ja klaro das mache ich dann 193.000 mal einzelnt ja ne ist klar...:)


    habs aber schon selbst nun herausgefunden mit Excel jede 2 doppelte zeile löschen


    1 abfragen ids,name mit

    PHP
    1. $sql = "SELECT * FROM `actors` WHERE `name` IN ( SELECT `name` FROM `actors` GROUP BY `name` HAVING Count( 1 ) >1) ORDER BY name ASC";


    diese dann 2X in einer Excel tabelle packen und jede 2 zeile löschen TUT https://www.extendoffice.com/d…lete-every-other-row.html


    dies dann via update ersetzen.


    PHP
    1. UPDATE `actors_titles` SET actor_id = REPLACE(actor_id, '25257', '43458') WHERE `actor_id` LIKE '25257';



    danach kann der doppelte eintrag weg mit


    HTML
    1. DELETE FROM `actors` WHERE `id` = 25257;


    geht nun alles



    https://www.extendoffice.com/d…lete-every-other-row.html


    https://www.extendoffice.com/d…lete-every-other-row.html

  • Über Excel ist das doch eher ein Umweg...



    Wenn Du Deine Tabellen- und Spaltennamen entsprechend anpasst, sollte das direkt funktionieren und ist als PROCEDURE hinterlegt auch wiederkehrend verwendbar.