mysqldumper
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 23.07.2008, 14:27   #1
TP-Member
 
Benutzerbild von Erdferkel
 
Registriert seit: Oct 2004
Erdferkel macht alles soweit korrekt

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?
Erdferkel ist offline   Mit Zitat antworten


Alt 23.07.2008, 14:37   #2
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
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
Adromir ist offline   Mit Zitat antworten
Alt 23.07.2008, 14:38   #3
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
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
steffenk ist offline   Mit Zitat antworten
Alt 23.07.2008, 20:14   #4
TP-Member
 
Benutzerbild von Erdferkel
 
Registriert seit: Oct 2004
Erdferkel macht alles soweit korrekt
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.

Zitat:
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
Erdferkel ist offline   Mit Zitat antworten
Alt 23.07.2008, 20:30   #5
TP-Moderator
 
Benutzerbild von Rizzo
 
Registriert seit: Aug 2004
Ort: Kaiserslautern
Rizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine UserRizzo lebt für das TP und seine User
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?
__________________
#.Viele Grüße, Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
.
Rizzo ist offline   Mit Zitat antworten
Alt 23.07.2008, 21:33   #6
TP-Member
 
Benutzerbild von Erdferkel
 
Registriert seit: Oct 2004
Erdferkel macht alles soweit korrekt
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.
Erdferkel ist offline   Mit Zitat antworten
Alt 23.07.2008, 21:42   #7
TP-Moderator
 
Benutzerbild von Adromir
 
Registriert seit: Jun 2004
Ort: Hannover
Adromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKEAdromir ist ein richtiges Arbeitstier - DANKE
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
Adromir ist offline   Mit Zitat antworten
Alt 23.07.2008, 23:09   #8
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
also ich habs ausprobiert und (erwarteter Weise) keinen Fehler!
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 24.07.2008, 09:14   #9
TP-Member
 
Benutzerbild von Erdferkel
 
Registriert seit: Oct 2004
Erdferkel macht alles soweit korrekt
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:
Zitat:
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
Zitat:
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()?
Erdferkel ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
MySQL DELETE FROM x ORDER BY y fehlermeldung [MySQL] MySQL DELETE FROM x ORDER BY y fehlermeldung
« Pw-Abfrage Fehler :( | RSS-Feed, das neue Datensätze anzeigt »

Stichworte
datenbank, mysql

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:33 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67