Importieren geht nicht so wie ich will

rernanded

Erfahrenes Mitglied
Hi,
habe Probleme in meine Tabelle (mysql-Database) korrekt zu importieren.

Habe 20.000 Datensätze mit Werten in 4 Feldern, 2 Felder(nr, homepage) sind leer. In die 2 leeren Felder will ich nun Daten aus einer .txt importieren. Und zwar mit CSV load data über phpmyadmin.
Leider werden die Werte in 20.000 weiteren Datensätzen hinten dran gehängt. Bei denen sind die ersten 4 Felder leer und die letzten 2 Felder(nr, homepage) enthalten korrekt meine importierten Daten.

Die zu importierenden Daten sehen alle wie folgt aus(Beispiel):

12345|||Homepage: http://www.....de ;

Anzahl der am Anfang zu überspringenden Datensätze = 0
Optionen für den CSV-Import mit LOAD DATA
Tabelleninhalt ersetzen JA
Ignoriere doppelte Zeilen
Felder getrennt mit ;
Felder eingeschlossen von
Felder escaped von
Zeilen getrennt mit ||
Spaltennamen nr,homepage
mit LOCAL JA


Eigentlich müsste es damit gehen.
Bin verzweifelt.
MONI
 
1) import in eine neue Tabelle
2) die eigentliche Tabelle mittels eines Updates aktualisieren

Könnte es so gehen? Mit join habe ich wenig Erfahrung.


SQL:
update altetabelle set altetabelle.spalte1 from neuetabelle join where neuetabelle.spalte1


Moni
 
Zuletzt bearbeitet von einem Moderator:
Der SET ist unvollständig und der JOIN ebenfalls.
MySQL-Doku hilft in beiden Fällen weiter
http://dev.mysql.com/doc/refman/5.1/de/update.html


Ehrlich gesagt komm ich nicht klar, vielleicht gibts noch nen Tip von Dir. Vllt auch ein paar anschauliche Beispielsseiten im Netz die hier zutreffen könnten.

Hab jetzt:
SQL:
update altetabelle set altetabelle.spalte1 from neuetabelle join neuetabelle.spalte1 where alte.tabelle.id=neuetabelle.id

Danke. MONI
 
Zuletzt bearbeitet:
Also, die verlinkte Seite ist auf Deutsch.
Vergleiche mal den Teil im SET und den Teil bei JOIN. Es fehlt da immer etwas

Ich kopiere hier mal Beispiele der verlinkte Seite.
Zum SET geht gleich das erste Beispiel der Doku
SQL:
UPDATE persondata SET age=age+1;

-- im Vergleich dazu deins
UPDATE altetabelle SET altetabelle.spalte1

Das 3te Beispiel löst dein JOIN. Es ist sogar genau das was du suchst. Nur heissen die DInger bei dir anders
SQL:
UPDATE items,`month` SET items.price=`month`.price
WHERE items.id=`month`.id;

So, das kostet dich ein Bier.
 
Zuletzt bearbeitet von einem Moderator:
SQL:
UPDATE altetabelle,neuetabelle SET altetabelle.spalte1=neuetabelle.spalte1 WHERE altetabelle.id=neuetabelle.id
Hab aber auch:
SQL:
UPDATE altetabelle SET spalte1 = (SELECT spalte1 FROM neuetabelle WHERE neuetabelle.id=altetabelle.id)

So müsste es also stimmen, und wohin das Bier schicken? Danke. MONI
 
Zuletzt bearbeitet:
Zurück