Hvem fanden er den general?
Hvem fanden er den general?

Opdater rækker i MySQL med LIMIT

Hvis du nu har en tabel med f.eks. 2000 rækker hvor du ønsker at opdaterer de første 300 rækker, kan man ikke bare som når man laver end SELECT sætte en limit på UPDATE. Men man kan i stedet benytte en sub query for at få samme resultat.

Hvis din tabel hedder mintabel og ud ønsker at opdatere feltet status for de første 300 rækker, ser det sådan ud:

UPDATE mintabel SET status='active'
     WHERE id IN (
         SELECT id FROM (
             SELECT id FROM mintabel
             ORDER BY id ASC  
             LIMIT 0, 300
         ) tmp
     );

Det er muligt at sætte forskellige betingelser på ved at sætte en WHERE på sub select’en og dermed kun udvælge dem som du ønsker at opdaterer.

Leave a comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.