Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL csv-Export + leere Spalten ausblenden
Hallo,
ich habe zwei Probleme mit MySQL.
1. Problem: Ich möchte aus MySQL in eine csv-Datei exportieren, was im Prinzip schon hiermit funktioniert:
INSERT INTO test.pillepalle
SELECT * FROM test.blubb WHERE Auto='gruen';
Ich hätte aber gerne die Spaltenüberschriften mit exportiert!!! Geht das und wenn ja, wie?
2. Problem: Ich würde mir gerne aus einer "großen" Datenbank gerne nur die Spalten anzeigen lassen in denen auch was drin steht, also alle Spalten ausblenden in denen nix drin steht! HINWEIS!! Es sind zuviele Spalten um sie einzeln abzufragen!!!
Über jegliche Hilfe wäre ich sehr dankbar.
Gruß Raymond
Ich würde mich auch schon mit der Lösung eines Problems zufrieden geben.
:o
mwanaheri
22-11-2005, 14:25
Dass die Spaltenüberschriften mit exportiert werden können, bezweifle ich (schon wegen der Datentypen).
Für die Auswahl der Spalten: Gib die Spalten an, die du brauchst. Wenn du null-Einträge nicht exportierst, droht dir eine csv mit inhomogener Struktur. Was ist denn so schlimm an leeren Spalten?
... erstmal danke für die Antwort.
Dass die Spaltenüberschriften mit exportiert werden können, bezweifle ich (schon wegen der Datentypen)
Die Spaltenüberschriften bestehen doch nur aus einfachem Text, wo ist denn da das Problem??? :confused:
Was ist denn so schlimm an leeren Spalten?
Wie erklär ich das jetzt am bestern??? mmmh!
Ich versuch es mal so: Ich habe eine große Datenbank. ca. 200Spalten und annähernd 100000 Zeilen. Für die Weiterverarbeitung in einem anderen Programm treffe ich mittels "SELECT" eine Auswahl von Zeilen; bilde quasi kleine Grüppchen! Von Gruppe zu Gruppe sind aber ein "paar" Spalten leer, was für die Weiterverabeitung a. unübersichtilicher ist und b. *nerv*
Romanday
23-11-2005, 00:45
mysql -?
Dann bekommst du alle Parameter die du brauchst.
JA! MySQL!
Du hast eine Lösung für mein Problem??? :)
2. Problem: Ich würde mir gerne aus einer "großen" Datenbank gerne nur die Spalten anzeigen lassen in denen auch was drin steht, also alle Spalten ausblenden in denen nix drin steht!
wenn du das öfter brauchst, dann rentiert es sich vielleicht mal einen view anzulegen mit dem du nur die benötigten spalten selektierst. danach kannst du immer ein "select * from meinview" machen und bekommst nur die spalten die du sehen willst.
wenn du das öfter brauchst, dann rentiert es sich vielleicht mal einen view anzulegen mit dem du nur die benötigten spalten selektierst. danach kannst du immer ein "select * from meinview" machen und bekommst nur die spalten die du sehen willst.
Einen View erstellen setzt aber voraus das ich immer die gleiche Ansicht haben will, oder?
was meinst du mit gleicher ansicht? du kannst ja verschiedene views für dieselbe tabelle definieren. ein view selektiert teilmenge a, der nächste teilmenge b usw...
ok, einen Versuch ist es wert.
Wie erstell ich denn so einen view??? Dann kann ich das mal ausprobieren und entscheiden, ob das für mich eine Lösung ist.
Danke auf jedenfall schon mal im voraus.
CREATE VIEW gruene_autos AS SELECT * FROM test.blubb WHERE Auto='gruen';
ich hab's direkt mal ausprobiert. Der String erstellt aber nicht ganz das was ich eigentlich wollte.
Der String fasst mir in der View-Datei die Zeilen zusammen indenen Auto='gruen' steht. Ich hätte aber gerne das alle Spalten die leer sind ausgeblendet werden! :o
michael.sprick
23-11-2005, 08:59
kannst du mal ein abstraktes Beispiel geben?
Wie sieht Dein Select aus, was gibt er aus und was würdest Du gerne draus machen?
Also .... meine Tabelle!!! (abstrakt genug :D )
Auto_1 Auto_2 Auto_3 Auto_4
grün rot blau
gelb orange grün
schwarz braun lila
ich würde gerne einen Select machen der mir alle leeren Spalten ausblendet, also Auto_4. Problem die Tabelle hat über 200Spalten und die einzeln zu deklarieren ist sehr mühsam und für meine Zwecke unbrauchbar.
Ich suche nun nach einer Lösung die mir alle leeren Spalten ausblendet.
??? gibt es so was wie ... WHERE *='' ???
ich hab's direkt mal ausprobiert. Der String erstellt aber nicht ganz das was ich eigentlich wollte.
Der String fasst mir in der View-Datei die Zeilen zusammen indenen Auto='gruen' steht. Ich hätte aber gerne das alle Spalten die leer sind ausgeblendet werden! :o
na klar, du musst den view eben so anpassen dass nur die relevanten spalten angezeigt werden.
CREATE VIEW gruene_autos AS SELECT spalte1,spalte5,spalte23 FROM test.blubb WHERE Auto='gruen';
danach kriegst du mit
select * from gruene_autos;alle grünen autos angezeigt, aber eben nur die spalten 1,5,23.
... das setzt aber voraus, dass ich weiß welche Spalten leer sind, bzw. mir die Mühe gemacht habe die 200 Spalten zu durchforsten, ob die leer sind, oder hab ich den String falsch verstanden???
Es wird nicht automatisch erkannt, welche Spalten leer sind, oder?
du musst dir die mühe aber nur einmal beim erstellen des views machen. automatisch geht das nicht. mit einer where-bedingung kannst du nur zeilen aber keine spalten ausschliessen.
das ist Schade. Aber da kann man wohl nix machen.
Hast du denn eventuell eine Lösung für mein erstes Problem???
naja mit
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'blubb'
kriegst du die spaltennamen der tabelle
... ausprobiert, funktioniert. .... aber....
der gibt mir die Spaltennamen in einer Spalte untereinander aus. Kann ich also für die Ausgabe in eine csv-Datei nicht gebrauchen. :(
???
na dann vielleicht so:
SELECT group_concat(COLUMN_NAME)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'blubb'
... wir kommen der Sache näher!!!
Jetzt schreibt er mir alle Spaltenüberschriften in eine Spalte direkt hintereinander.
Neuer Erklärungsversuch:
Ich möchte eine Tabelle aus meiner Datenbank samt Header in eine csv-Datei exportieren!!!
wie exportierst du denn die daten in die csv-datei?
Hiermit:
SELECT * INTO OUTFILE 'C:/CSV_export/daten.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
FROM blubb;
mit einem statement header plus daten exportieren geht imho nicht, aber du könntest ja den header in eine datei und die daten in eine zweite datei exportieren und dann die 2 dateien zusammenkopieren
ok, danke.
habe gerade gelesen man könnte das eventuell mit phpMyAdmin.
Ich werde damit mal mein Glück versuchen.
hallo ray,
ich habe den fred gerade mal quergelesen...
Wenn ich lese, dass du versuchst eine Tabelle mit 200(!!!) Spalten und 1000 Zeilen zu bearbeiten, stellt sich sofort die Frage nach der DB-Struktur. Ich kenne keinen Fall, in dem es sinnvoll war so viele Spalten in einer Tabelle zu haben... :cool:
Wenn du eine etwas effizientere Struktur werden sich deine Export-Probleme wahrscheinlich in Wohlgefallen auflösen. ;)
.... eine Umstrukturierung ist nicht machbar. Und die 200 Spalten waren nur eine erste Näherung.
Es geht um die Generierung einer Testumgebung für ein elektro-mechanisches System; wobei eine vielzahl von Variablen auf das System einwirken....
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.