Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

MYSQL SPLIT

Frage Entwicklung Datenbanken

Mitglied: Radi1989

Radi1989 (Level 1) - Jetzt verbinden

18.08.2010 um 15:59 Uhr, 3746 Aufrufe, 4 Kommentare

Hallo Leute,

und zwar habe ich folgendes Problem:
Ich muss aus einer Tablle bzw. deren Spalte alle Ziffern raussuchen und sie in eine neue Zeile schreiben. Folglich brauch muss ich jede Zeile auslesen und nach dem ; splitten und im Anschluss jeden einzelnen Wert in eine neue Zeile reinschreiben.


Beispiel-Tabelle: id kennziffern
1 051316;313646;341316;*;
2 458741;123456;*;854875

Da ich leider aber noch Jungfrau in SQL bin, wöre es schön wenn ihr mir helfen könntet. Als Einschränkung gilt noch, das nur SQL verwendet werden darf.

Danke im vorraus für die Hilfe.

Gruß Chris
Mitglied: dog
18.08.2010 um 17:35 Uhr
Ich lehne mich mal aus dem Fenster und sage das ist nur sehr umständlich möglich:

Stichworte:
Stored Procedures
Loops
Cursor
Bitte warten ..
Mitglied: Biber
18.08.2010 um 20:12 Uhr
Moin Radi1989,

wenn dir als einem SQL-Newbie jemand diese Aufgabe übertragen hat, dann liegt der Verdacht nahe, es könnte so eine Art kleiner Scherz von Kollegen gegenüber Frischlingen sein.
So wie der Satz "Hol mal die Frequenzbiegezange aus dem Werkstattwagen!" zum neuen Azubi.

Falls es so ist (wie ich inständig hoffe), dann ..
--> Okay, bist reingefallen. Wir machen einen Haken dran und verschieben es nach "Humor(lol)". Ende der Story.

Falls diejenigen, die dir das aufgedrückt haben, es ernst meinen sollten, sag denen:

  • "Randbedingung nur reines SQL?" :
Kannste knicken.
MySql kennt keine Explode(..) -Funktion und die nächst schwereren Geschütze wären ein kombinierter Gordischer REXEXP()/Instr()-Knoten, den hier im Forum vielleicht 5 Leute LESEN könnten vor Weihnachten.
Aber du mit Sicherheit nicht schreiben
Und selbst wenn das gelänge mit Rückenwind und a little help from friends --> auf dieses unwartbare und inperformante Gestrunkele musst du dann zusätzlich noch ein paar UNION ALLs draufsetzen, damit aus jeder Spalte mit 4 Einträgen dann auch 4 Zeilen in der Anzeige werden... die jagen dich vom Hof, wenn die Laufzeit der Query bekannt wird.

  • eingeschränkt, aber nicht ganz so extrem gilt das auch für eine Lösung mit einer stored procedure, wie von dog genannt oder für ein Abweichen vom Plan "nur SQL" und einer Lösung mit der PHP-explode()-Funktion.

  • und um es ganz ganz deutlich zu sagen: was dort vorliegt ist ein Designfehler. Fehlende Normalisierung. So nicht verarbeitbar im DB-Kontext.

  • FALLS das eine gelieferte Datei zum Import ist: Ablehnen. Back to sender.. Zahlung an den Datenlieferanten einstellen. Rechtsschutz anrufen.

Wie geschrieben - ich hoffe für alle Beteiligten, dass es nur ein Ulk unter Kollegen ist.

Grüße
Biber
Bitte warten ..
Mitglied: Radi1989
19.08.2010 um 08:21 Uhr
Danke für den Tipp dog.

Und biber, nein es ist leider kein Scherz. Es soll nur reines SQL verwendet werden und das alles im Zusammenhang mit Stored Procedure.
Aber fand deinen Kommentar trotzdem super ;) :D.

Na dann muss ich mal gucken wie ich das anstelle...

Danke für die Hilfe

LG Radi
Bitte warten ..
Mitglied: 93045
19.08.2010 um 10:53 Uhr
Also... so was wie SPLIT gibt es nicht. Wenn man sich aber die mysql Referenz Dokumentation anschaut, findet man Funktionen wie LOCATE und SUBSTR mit denen man sich ein SPLIT zusammenbauen kann. Googelt man dann noch ein wenig, findet man z.B. diesen Thread: http://forums.mysql.com/read.php?60,78776,78776#msg-78776. Ganz wichtig ist den gesamten Thread durchzulesen.
Allerdings bleibt die Frage offen, wie sinnvoll das alles (Datenbank-Design, Stored Procedure) eigentlich ist.
Bitte warten ..
Ähnliche Inhalte
Router & Routing
Open VPN auf Split konfiguriren (9)

Frage von rainergugus zum Thema Router & Routing ...

Datenbanken
gelöst Eine Art Access, nur mit PHP und MySQL? (14)

Frage von McLion zum Thema Datenbanken ...

Datenbanken
MySQL Liste simulieren (2)

Frage von Yanmai zum Thema Datenbanken ...

Datenbanken
MySQL bearbeiten - Rechte auf User ändern (6)

Frage von istike2 zum Thema Datenbanken ...

Neue Wissensbeiträge
Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (33)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...