samsx87
Goto Top

Bestimmte Zeilen Nummer in mySQL Datenbank löschen

Hallo Zusammen

Situation:
Ich habe eine mySQL Datenbank. In dieser möchte ich nun die 34 Zeile löschen - aber wie?

Kann mir jemand helfen? Mit "DELETE * FROM $tablename WHERE ID = 34" funktioniert es irgendwie nicht. Mach ich was falsch?

mfG

samsx

Content-Key: 75754

Url: https://administrator.de/contentid/75754

Ausgedruckt am: 29.03.2024 um 06:03 Uhr

Mitglied: tikayevent
tikayevent 11.12.2007 um 16:44:27 Uhr
Goto Top
Ich glaube, dass geht mit LIMIT. Ich nutz es momentan relativ selten, aber lass mal die WHERE-Klausel weg und pack stattdessen ein LIMIT 33,34 dahin.

Bitte nicht an einem Produktivsystem testen, ich bin mir nämlich gerade nicht sicher.
Mitglied: Dani
Dani 11.12.2007 um 17:06:16 Uhr
Goto Top
Hallo samsx87,
du hast doch sicher als Datenbanksystem eine MySQL am laufen. Somit hast die Möglichkeit "phpmyadmin" anzuwenden. Ist ein kl. Tool das auf PHP basiert. Damit ist es möglich, die Datenbanken, Tabellen, User, etc.. .zuverwalten.

Einfach dort das Statement absetzen. Dann siehts du gleich ob es geht. Falls nicht, erscheint eine Fehlermeldung. An dieser kannst du dann erkennen, wo dein Fehler ist!

Ich würde das Statement mal so probieren:
<?
$sql="DELETE * FROM $tablename WHERE id='34';";  
mysql_query($sql);
?>
Natürlich sollte der Datensatz mit der ID 34 auch noch in der Tabelle existieren.


Grüße
Dani
Mitglied: EvilMoe
EvilMoe 11.12.2007 um 18:34:15 Uhr
Goto Top
> <?
> $sql="DELETE * FROM $tablename WHERE  
> id='34';";  
> mysql_query($sql);
> ?>
> 

Heisst es nicht nur "DELETE FROM" ? Der "*" kommt doch nur bei einer SELECT abfrage vor oder irre ich mich?
Mitglied: samsx87
samsx87 11.12.2007 um 19:03:49 Uhr
Goto Top
Hallo Zusammen

Vielen Dank für eure Antworten.

SELECT * FROM $tabellenname LIMIT 33,34 liefert mir alle Einträge bis und mit dem Eintrag 34

SELECT * FROM $tabellenname WHERE id='34' liefert mir "#1054 - Unknown column 'id' in 'where clause' "

Hat jemand noch eine andere Idee?
Mitglied: EvilMoe
EvilMoe 11.12.2007 um 19:05:49 Uhr
Goto Top
Dann heißt das Feld bei dir nicht "id"! Du musst schon den richtigen Feldnamen benutzen!
Mitglied: Dani
Dani 11.12.2007 um 19:08:48 Uhr
Goto Top
Hi EvilMoe,
du hast Recht. Das Sternchen gehört da nicht hin. C&P halt.....


Grüße
Dani
Mitglied: samsx87
samsx87 11.12.2007 um 19:36:26 Uhr
Goto Top
Ich habe aber kein ID-Feld (oder was ähnliches) ich möchte doch nur die Zeile 34 Auslesen ohne extra noch ein zusätzliches Feld mit einer Nummerierung zu verwenden face-sad Das muss doch irgendwie gehe :/
Mitglied: EvilMoe
EvilMoe 11.12.2007 um 19:40:53 Uhr
Goto Top
WIe lautet denn der "Primary Key". Es wird doch eine eindeutige aufzählung vorhanden sein oder nicht?
Mitglied: Biber
Biber 11.12.2007 um 21:43:28 Uhr
Goto Top
Moin samsx87,

Situation:
Ich habe eine mySQL Datenbank.

Ich frage mal: wozu?

In dieser möchte ich nun die 34 Zeile löschen
Das, was Du beschreibst, ist ein zeilen-orientieres Arbeiten.
Abhängig von einem vorherigen prüfenden Blick von jemand, der das sieht, welche Zeile da nicht hingehört (so genannter bio-optical scan).
Etwas für Tesxtdateien oder Zeilen einer Excel-Tabelle.

Die meisten Datenbanken arbeiten etwas anders - da gibt es einen eindeutigen Schlüsselbegriff je Datensatz. Wie Artikelnummer, Kundennummer oder meintwegen eine künstliche ID, die beim Neuanlegen (als Wert in einem eigenen Feld) vergeben wird.
Nur dann nämlich ist diese Zeilennummer unabhängig von den Suchkriterien oder der festgelegten ORDER/Reihenfolge.

Wenn Du ein "Select * from whatever" machst, ist der Reihenfolge der Sätze zufällig.
Und in einer Tabelle mit 2 Mio Datensätzen würde ich nicht den Satz #1289842 löschen, weil der das letzte Mal diese "Zeilennummer" hatte.
Eigentlich auch nicht den Satz #34.

Einige Datenbanken bieten eine Funktion RowId() an, z.B. Oracle oder eine Funktion/einen Feldtyp ROWID, z.B. DB2, aber erstens zu anderen Zwecken und mit anderen Fussangeln.

mySQL hat so etwas nicht.

Und das ist nur begrenzt schade.

Grüße
Biber
Mitglied: samsx87
samsx87 11.12.2007 um 22:18:48 Uhr
Goto Top
Na toll face-sad Jetzt muss ich also eine Umweg über eine extra Spalte (z.B. "ID" wie es EvilMoe vorgeschlagen hat) machen... grml
Naja trotzdem vielen Dank für eure Hilfe!

Gruss samsx