Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Delete Frage, mit Order By u. Limit => sortiert voher nicht !

Hi,

habe mal 'ne Frage:
versuche gerade Daten in meiner Datenbank zu löschen mit:
DELETE FROM tabelle ORDER BY Feld LIMIT 50

Diese Anweisung ist schön kurz und löscht auch, NUR werden die Werte aus dem Feld "ORDER BY Feld" vor dem Löschen nicht sortiert, weiss jemand warum ???

Allerdings ist in der Tabelle kein TIMESTAMP Feld vorhanden, sondern das Feld zum Sortieren ist einfach nur eine gespeicherte Zahl, wie z. B. 6,10 oder 80.

Ist die obere Anweisung vielleicht nur mit einem TIMESTAMP Feld zu sortieren ?

Freue mich über Eure Hilfe !

Hier gehts zum Orginal Eintrag "Delete Frage, mit Order By u. Limit => sortiert voher nicht !" im Forum

Antworten

versuch das mal (umbauen nicht vergessen) http://www.dclp-faq.de/q/q-mysql-loeschen.html
man achte dabei auf [color="#FF0000"]where[/color]


2.

habe ja auch WHERE eingesetzt aber es funzt nicht !

DELETE FROM tabelle WHERE x=x ORDER BY spalte LIMIT 20

er will einfach vor dem Löschen nicht sortieren, muss die Spalte zum Sortieren vielleicht ein bestimmtes Format haben ??? Ich speichere z. B. in der Spalte INT Zahlen.


3.

WHERE x=x ist ja nun auch wirklich keine sinnvolle Bedingung.


4.

Where x=x ist ja nur ein Beispiel


5.

er löscht ja auch wo x=x ist, jedoch nur die falschen Datensätze, da er vorher nicht sortiert .


6.

Hm, Okay, welche MySQL Version?


7.

Vers. 4.0.13


8.

Oder denke ich falsch ?

Die untere Anweisung hat z. B. 100 Datensätze (es sind alle Datensätze, die er mit WHERE x=x gefunden hat), soll diese Datensätze sortieren und dann aus der sortierten Liste die ersten 20 löschen, so dass die Datensätze mit den höchsten Werten oder je nach Sortierung auch mit den niedrigsten Werten erhalten bleiben.

Oder verhindere ich mit dem "LIMIT 20", dass er zunächst alle gefundenen Datensätze einliest (also alle Datensätze die existieren mit WHERE x=x), um sie zu sortieren??

DELETE FROM tabelle WHERE x=x ORDER BY spalte LIMIT 20

DANKE !


9.

Die Syntax passt.

Warum bist du dir so sicher das die Datensätze nicht sortiert werden, mach doch einfach mal anstatt "delete" ein "Select *" und lass dir die Datensätze ausgeben.


Hier gehts zum Orginal Eintrag "Delete Frage, mit Order By u. Limit => sortiert voher nicht !" im Forum
 
phpforum.de | Impressum