|
|
|
|
|
|
|||||||
| Datenbanken SQL und Co |
|
|
|
LinkBack | Themen-Optionen | Thema bewerten |
|
|
#11 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 26.12.2009
Beiträge: 565
PHP-Kenntnisse: Anfänger ![]() |
So, folgendes Beispiel habe ich mal zusammengestellt:
Code:
CREATE TABLE person (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
vorname VARCHAR(50) NOT NULL,
strasse VARCHAR(50) NOT NULL,
gebdatum DATE NOT NULL,
PRIMARY KEY (id)
);
/*person.csv*/
"code";"name";"strasse";"datum"
"x11";"maier, otto";"strasse1";"02.01.1990"
"x91";"laier, fritz";"strasse2";"01.02.1990"
"xx91";"saier, emma";"strasse3";"03.03.1990"
LOAD DATA LOCAL INFILE 'person.csv'
REPLACE INTO TABLE person
FIELDS TERMINATED BY ';'
ENCLOSED BY '\"'
ESCAPED BY '\\'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(@skip,@name,strasse,@datum)
SET name = TRIM(SUBSTRING(@name,1,INSTR(@name,',')-1)),
vorname = TRIM(SUBSTRING(@name,INSTR(@name,',')+1)),
gebdatum = str_to_date(@datum, '%d.%m.%Y');
mysql> LOAD DATA LOCAL INFILE 'person.csv'
-> REPLACE INTO TABLE person
-> FIELDS TERMINATED BY ';'
-> ENCLOSED BY '\"'
-> ESCAPED BY '\\'
-> LINES TERMINATED BY '\r\n'
-> IGNORE 1 LINES
-> (@skip,@name,strasse,@datum)
-> SET name = TRIM(SUBSTRING(@name,1,INSTR(@name,',')-1)),
-> vorname = TRIM(SUBSTRING(@name,INSTR(@name,',')+1)),
-> gebdatum = str_to_date(@datum, '%d.%m.%Y');
Query OK, 3 rows affected (0.01 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from person;
+----+-------+---------+----------+------------+
| id | name | vorname | strasse | gebdatum |
+----+-------+---------+----------+------------+
| 13 | maier | otto | strasse1 | 1990-01-02 |
| 14 | laier | fritz | strasse2 | 1990-02-01 |
| 15 | saier | emma | strasse3 | 1990-03-03 |
+----+-------+---------+----------+------------+
3 rows in set (0.00 sec)
Code:
-> (@skip,@name,strasse,@datum)
-> SET name = TRIM(SUBSTRING(@name,1,INSTR(@name,',')-1)),
-> vorname = TRIM(SUBSTRING(@name,INSTR(@name,',')+1)),
-> gebdatum = str_to_date(@datum, '%d.%m.%Y');
1) "code" = @skip wird ignoriert (wird nicht eingelesen, erscheint nicht im SET) 2) "name" = @name - die Zeichen bis zum Komma ist der Nachname 3) "vorname" = @name - die Zeichen ab dem Komma ist der Vorname 4) "strasse" = "strasse" - Wert wird direkt übernommen (deshalb kein Variable @strasse in SET ) 5) "gebdatum" = "@datum" - Typkonvertierung Datum Das sollte eigentlich funktionieren. Grüße Thomas Geändert von thomas_w (12.03.2010 um 15:10 Uhr). Grund: Schreibfehler korrigiert |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| LOAD DATA INFILE Feldgröße | moepmann | Datenbanken | 5 | 21.02.2010 22:02 |
| LOAD DATA LOCAL INFILE mit PDO_MYSQLl unter PHP | most | Datenbanken | 7 | 16.02.2010 13:04 |
| mysqli_multi_query lässt Eintrag aus... | Samhayne | Datenbanken | 8 | 07.02.2010 19:02 |
| [Erledigt] php mit LOAD DATA INFILE geht nicht | 6setzen | PHP Einsteiger | 3 | 17.12.2009 05:59 |
| OpenID und XAMPP | nanatsusaia | PHP Einsteiger | 2 | 20.11.2009 13:21 |
| [MySQL] Existiert Alternative für LOAD DATA INFILE für stored Procedures? | TheIfrit | Datenbanken | 1 | 14.10.2009 09:59 |
| [Erledigt] LOAD DATA LOCAL INFILE problem !! | gustave | PHP Einsteiger | 2 | 29.07.2009 14:55 |
| Fehler by load data infile php script | cn-systems | PHP-Fortgeschrittene | 7 | 28.11.2008 13:59 |
| CSV datei mit load data local infile | Datenbanken | 8 | 01.07.2005 11:23 | |
| update auf php 5.0.4 | robo47 | Server, Hosting und Workstations | 6 | 10.04.2005 19:00 |
| fgetcsv und Datum konvertieren | PHP Tipps 2004 | 0 | 28.09.2004 11:40 | |
| LOAD DATA INFILE vom externen Ort | kanti | Datenbanken | 0 | 30.08.2004 14:52 |
| [Erledigt] load data infile - hört bei 127 einfach zu zählen auf? | Datenbanken | 3 | 01.07.2004 23:37 | |
| load data local | Datenbanken | 4 | 23.06.2004 14:28 | |
| csv import datum konvertieren | Datenbanken | 1 | 22.06.2004 07:31 | |