Antworten auf deine Fragen:
Neues Thema erstellen

MySQL Abfrage wenn Feld X = leer ...

philipp1988

Nicht mehr ganz neu hier

Guten Morgen,

ich habe gestern eine .csv Datei in meine Datenbank importiert, was auch Prima geklappt hat. ( Bestehend aus 3 Datenfeldern )

Nun möchte ich, da die .csv unvollständig war ( und es per Hand bei circa 20.000 Datensätzen recht lange dauern würde ^^ ) die Datensätze löschen wo Feld 3 leer ist.

PHP:
DELETE FROM datenbanktabelle where feld = '';

Wenn ich dies ausführe werden circa 150 Datensätze gelöscht .. nur viele die noch bei Feld 3 nichts drin haben sind in der Datenbank vorzufinden.
Habe gemerkt, dass bei den Feldern noch Zeilenumbrüche zu finden sind.
Gibt es eine Funktion, Datenfeld ( zurzeit Varchar ) der die Steuerzeichen ignoriert?

Würde mich auf ein Tipp freuen..

Mfg ;)
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL Abfrage wenn Feld X = leer ...

Keine Ahnung ob das funktioniert (nur ausführen, wenn du zuviel gelöschte Einträge auch wiederherstellen kannst), aber spontan würde ich das machen:

PHP:
DELETE FROM `datenbanktabelle` 
WHERE `id` IN ( SELECT `id` 
                FROM `datenbanktabelle` 
                WHERE `feld` REGEXP '^[[:space:]]*$');

Also mit einer Subquery erstmal alle IDs holen, dessen feld nur Tabs/Leerzeichen/Zeilenumbrüche hat, dann alle Zeilen löschen die in diesem Subquery zurückgegeben wurden.


Duddle
 

philipp1988

Nicht mehr ganz neu hier

AW: MySQL Abfrage wenn Feld X = leer ...

PHP:
DELETE FROM `datenbank` 
WHERE `id` IN ( SELECT `id` 
                FROM ( select * from `datenbank` ) as datenbank1
                WHERE `feld` REGEXP '^[[:space:]]*$');

Musste die Abfrage ein bisschen abändern damit es ohne Errors geht.

Komischerweise löscht er zwar Datensätze aber mehr als gewünscht :X

Habe circa 1000 Datensätze wo in Feld was drin steht.. aber am Schluss hab ich nur noch ca 600 oO und dann immernoch Datensätze wo etwas leer ist.


Tipps?
wäre dankbar :)

mfg
 

Duddle

Posting-Frequenz: 14µHz

AW: MySQL Abfrage wenn Feld X = leer ...

Bei meiner Testtabelle funktioniert es genau so wie ich es geschrieben habe.

Musste die Abfrage ein bisschen abändern damit es ohne Errors geht.
Was kamen denn für Fehler? Das Forum hat kein "Glaskugel"-Feature.

Du könntest beispielsweise statt dem DELETE mal ein SELECT * machen, dann siehst du die ausgewählten Datensätze und kannst nach Auffälligkeiten suchen.


Duddle
 

philipp1988

Nicht mehr ganz neu hier

AW: MySQL Abfrage wenn Feld X = leer ...

#1093 - You can't specify target table 'kunden_newsletter' for update in FROM clause

Edit:

Habe es nun viel einfacher gelöst :) In jedem Datenbankfeld war ein \r\n enthalten.
Habe einfach die Datenbank in .sql exportiert und dann mit Suchen & Ersetzen gearbeitet.

Leider hat die Variante von oben nicht funktioniert.

Danke dir aber trotzdem für deine Mühen.

Mfg :)
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Keine Mitglieder online.

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben