Martin Franz: MySQL: UPDATE auf die ersten x Datensätze

Hi,

ich habe eine knifflige Frage, bei der ich keine vernünftige SQL-Abfrage hin bekomme.

Mal ganz laienhaft beschrieben möchte ich an Hand diverser Kriterien eine SELECT-Abfrage machen und diese Abfrage mit LIMIT auf eine bestimmte Anzahl Datensätze limitieren. Die zurückgegebenen Datensätze möchte ich jetzt mit UPDATE verändern. Das ganze sollte natürlich in einer Abfrage passieren und nicht in mehreren. Wie mache ich das am besten?

Das UPDATE sieht in etwa folgendermaßen aus:

UPDATE poolkontakte
SET BereitstellerID=36
WHERE ( (Letzter_Kontakt IS NULL OR Letzter_Kontakt = '0000-00-00 00:00:00') OR (Letzter_Kontakt IS NOT NULL AND Erneute_Bearbeitung >= NOW()) )

Ich möchte allerdings geordnet nach Name nur die ersten 5 Datensätze ändern:

ORDER BY Name ASC LIMIT 0,5

  1. Moin!

    Ich möchte allerdings geordnet nach Name nur die ersten 5 Datensätze ändern:

    ORDER BY Name ASC LIMIT 0,5

    Ja? Und? Sollte gehen:

    Syntax für eine Tabelle:

    UPDATE [LOW_PRIORITY] [IGNORE] tbl_name  
        SET col_name1=expr1 [, col_name2=expr2 ...]  
        [WHERE where_condition]  
        [ORDER BY ...]  
        [LIMIT row_count]
    

    Syntax für mehrere Tabellen:

    UPDATE [LOW_PRIORITY] [IGNORE] table_references  
        SET col_name1=expr1 [, col_name2=expr2 ...]  
        [WHERE where_condition]
    

    Siehe: http://dev.mysql.com/doc/refman/5.1/de/update.html

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development