Ergebnis 1 bis 18 von 18

Thema: [MySQL] Bedingtes löschen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Ups, übersehen, warte kurz...

    Also dein Argument ist zwar grundsätzlich falsch - schließlich habe ich dein "WHERE votes > 0" drin gelassen - aber dadurch ist mir was anderes aufgefallen: falls du bei pointspervote standardmäßig (also, wenn's noch keine Stimmen gibt) 0 einträgst, würden die ohne Stimmen bei den 100 aus der Unterabfrage nicht drin stehen, also würden nur welche gelöscht werden, wenn's mehr als 100 gibt, bei denen schon abgestimmt wurde, nicht mehr als 100 insgesamt.

    Nächster Versuch, noch komplizierter (wo sind denn die richtigen Experten, wenn man sie mal braucht? ó_Ò):
    Code:
    DELETE 
        FROM charts
        WHERE votes>0 
        HAVING ID NOT IN (SELECT ID, (CASE WHEN votes = 0 THEN 1000
                            ELSE pointspervote END) AS x
            FROM charts
            ORDER BY pointspervote DESC
            LIMIT 100)
        ORDER BY x ASC
        LIMIT 1;
    So!
    Vielleicht...o_O'' Also das würde fürs Sortieren allen, bei denen noch nicht abgestimmt wurde einen sehr hohen Wert zuweisen (sollte über oder beim Maximum liegen, weiß ja nicht, was das bei dir ist, 1000 dürfte aber reichen, oder?), so dass die sicher in den 100 drin liegen, die nicht gelöscht werden. Glaube ich. Langsam habe ich selbst kein allzu großes Vertrauen mehr.
    Außerdem weiß ich nicht, ob das "ELSE pointspervote" gültig ist.

    Versuch's halt mal...o_O''

    @ Manni unter mir: Erst recht falsch, hat den gleichen Fehler wie meins, nur sogar explizit angeschrieben. o_O'

    Geändert von drunken monkey (25.06.2006 um 20:11 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •