+ Antworten
Ergebnis 1 bis 9 von 9

Thema: MySQL DELETE FROM x ORDER BY y fehlermeldung

  1. #1
    TP-Senior Erdferkel macht alles soweit korrekt Avatar von Erdferkel
    Registriert seit
    Oct 2004
    Beiträge
    113

    MySQL DELETE FROM x ORDER BY y fehlermeldung

    Das Problemm ist eigentlich zu dumm um es hier zu Posten. Aber laut allen Foren und Manuals sollte das funktionieren und tut es trotzdem nicht.


    MySQL Version 5.0.44;
    Tabelle table_test besteht aus zwei Spalten: id und test;
    Mysql-Abfrage: "DELETE FROM table_test ORDER BY id";
    Fehlermeldung: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id' at line 1"

    Ich möchte noch ein LIMIT hinzufügen, aber es macht keinen Sinn solange dieser Teil nicht funktioniert. Hatte jemand etwas vergleichbares?

  2. #2
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Da brauchst du kein ORDER BY mitzugeben, da der Befehl so eh alles löscht.
    Wenn du bestimmte Datensätze löschen willst, arbeite mit einer WHERE- Bedingung.
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  3. #3
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    es geht ja um limit

    Das sollte aber in jedem Fall funktionieren. Hast Du es in pma direkt probiert?

    delete/update mit Order By gibts seit MySQL 4.0.0


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  4. #4
    TP-Senior Erdferkel macht alles soweit korrekt Avatar von Erdferkel
    Registriert seit
    Oct 2004
    Beiträge
    113
    Zitat Zitat von Adromir Beitrag anzeigen
    Da brauchst du kein ORDER BY mitzugeben, da der Befehl so eh alles löscht.
    Wenn du bestimmte Datensätze löschen willst, arbeite mit einer WHERE- Bedingung.
    so eine antwort habe ich ja befürchtet. der gedanke dahinter ist ja simpel: man möchte aus einer tabelle nur die letzten 100 einträge übrig lassen und alles andere löschen und das möglichst in einem query.

    es geht ja um limit

    Das sollte aber in jedem Fall funktionieren. Hast Du es in pma direkt probiert?

    delete/update mit Order By gibts seit MySQL 4.0.0
    danke, das ist eine sehr gute idee. ich habe es ausprobiert und hier ist die antwort:

    Fehler

    SQL-Befehl:

    DELETE FROM table_test ORDER BY id

    MySQL meldet: Dokumentation
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id' at line 1

    ich benutze phpMyAdmin 2.11.5 von domaingo.de

  5. #5
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Hallo Erdferkel,

    heisst deine Tabelle tatsächlich so oder nimmst Du table_test nur als Platzhalter? Wenn Platzhalter, schreibt doch mal die echte Struktur und Statement hier rein. Allzu oft haben Leute schon Platzhalter verwendet, während die echte Tabelle aber ganz andere Spaltennamen benutzte, was letztendlich den Fehler verursacht hat. (Stichwort reservierte Keywords) Helfer raten hier dann herum und kommen auf keinen grünen Zweig, weil man mit mangelhafter Info versorgt wurde.

    Ansonsten solltest Du auch wirklich entweder eine WHERE Klausel und/oder ein LIMIT mit anhängen. 10 Sekunden googlen förderten einen Eintrag im MySQL Bugtracker zutage, in dem beschrieben wird, dass MySQL (je nach Version) mit einem Error quittiert, wenn man in Verbindung mit DELETE ein ORDER BY benutzt, es aber unterläßt ein LIMIT oder ein WHERE zu benutzen. Es ist, rein von der Logik her, vollkommen unsinnig den Inhalt einer ganzen Tabelle zu sortieren um den Inhalt vorher in eine bestimmte Reihenfolge zu bringen, nur um sie dann zu löschen. Oder sortierst Du einen Stapel Zeitschriften auch erst nach Alphabet, bevor Du sie in's Altpapier wirfst?

  6. #6
    TP-Senior Erdferkel macht alles soweit korrekt Avatar von Erdferkel
    Registriert seit
    Oct 2004
    Beiträge
    113
    danke, auch dem bin ich nachgegangen.

    die tabelle heißt wirklich table_test, hat zwei spalten => id (INT, auto_increment, primary_key) und test (VARCHAR, 3). die tabelle ist gefüllt mit zweihundert datensätzen. in jeder zeile hat test den wert "yes".

    Die Abfrage lautet jetzt:
    mysql_query("DELETE FROM table_test ORDER BY id LIMIT 10") or die(mysql_error());

    Die Antwort ist wenig tröstend:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id LIMIT 10' at line 1

    !!! Ich weiss dass man dieses Problem auch umgehen kann, aber es geht mir gerade darum, dass diese Lösung nach allen Regeln klappen sollte und es doch nicht tut. Ich möchte einfach die Ursache finden. Ich hoffe ihr könnt mir dabei helfen.

  7. #7
    TP-Moderator Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Adromir lebt für das TP und seine User Avatar von Adromir
    Registriert seit
    Jun 2004
    Ort
    Hannover
    Beiträge
    4.806
    Vielleicht sollte man mal schauen, welche MySQL Version es ist.

    Vielleicht wäre es auch mit Subqueries möglich:

    Code:
    DELETE FROM table_test WHERE id <= (SELECT MAX(id) FROM table_test) LIMIT 10
    Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
    -Dieter Nuhr

  8. #8
    TP-Special Mod steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User steffenk lebt für das TP und seine User Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    also ich habs ausprobiert und (erwarteter Weise) keinen Fehler!


    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer


  9. #9
    TP-Senior Erdferkel macht alles soweit korrekt Avatar von Erdferkel
    Registriert seit
    Oct 2004
    Beiträge
    113
    Ich habe es gerade auch auch auf einem anderen Server ausprobiert (von 1&1) und es ging.
    Der Vergleich der beiden INI-Dateien ergibt:

    1&1:
    mysql
    MySQL Support enabled
    Active Persistent Links 0
    Active Links 1
    Client API version 5.0.32
    MYSQL_MODULE_TYPE external
    MYSQL_SOCKET /var/run/mysqld/mysqld.sock
    MYSQL_INCLUDE -I/usr//include/mysql
    MYSQL_LIBS -L/usr//lib -lmysqlclient

    Directive Local Value Master Value
    mysql.allow_persistent On On
    mysql.connect_timeout 60 60
    mysql.default_host no value no value
    mysql.default_password no value no value
    mysql.default_port no value no value
    mysql.default_socket no value no value
    mysql.default_user no value no value
    mysql.max_links Unlimited Unlimited
    mysql.max_persistent Unlimited Unlimited
    mysql.trace_mode Off Off
    domain*go
    mysql
    MySQL Support enabled
    Active Persistent Links 0
    Active Links 0
    Client API version 5.0.44
    MYSQL_MODULE_TYPE external
    MYSQL_SOCKET /var/run/mysqld/mysqld.sock
    MYSQL_INCLUDE -I/usr/local/mysql/include
    MYSQL_LIBS -L/usr/local/mysql/lib -lmysqlclient

    Directive Local Value Master Value
    mysql.allow_persistent Off Off
    mysql.connect_timeout 60 60
    mysql.default_host no value no value
    mysql.default_password no value no value
    mysql.default_port no value no value
    mysql.default_socket no value no value
    mysql.default_user no value no value
    mysql.max_links Unlimited Unlimited
    mysql.max_persistent Unlimited Unlimited
    mysql.trace_mode Off Off
    Aber woran das genau liegt weiss ich immer noch nicht. Gibt es irgendwo sonst noch MySQL-Optionen, die man nachschauen könnte, außer in der phpinfo()?

+ Antworten

Ähnliche Themen

  1. MySQL: ORDER BY preis liefert falsches Ergebnis!!
    Von ffjj im Forum Traum-Dynamik
    Antworten: 1
    Letzter Beitrag: 14.03.2008, 13:32
  2. mysql - Fehlermeldung
    Von hhcity im Forum Traum-Dynamik
    Antworten: 3
    Letzter Beitrag: 05.04.2007, 20:26
  3. [php & mysql] insert, update und delete
    Von jayjay im Forum Traum-Dynamik
    Antworten: 24
    Letzter Beitrag: 22.05.2006, 12:46
  4. [mysql] Proglem mit delete-befehl
    Von Nepochal im Forum Traum-Dynamik
    Antworten: 8
    Letzter Beitrag: 05.02.2006, 14:51
  5. Keine Daten bei der Funktion ORDER BY [mySQL]
    Von singing sam im Forum Traum-Dynamik
    Antworten: 12
    Letzter Beitrag: 26.11.2004, 11:05

Stichworte

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51