Top-Themen

Aktuelle Themen (A bis Z)

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

Frage Entwicklung Datenbanken

SQL Dubletten löschen

Mitglied: fdisk

fdisk (Level 1) - Jetzt verbinden

27.11.2008, aktualisiert 28.11.2008, 9712 Aufrufe, 5 Kommentare

Hallo zusammen,

ich suche nach einer Möglichkeit Dubletten in einer Datenbank zu löschen.
Mit folgendem Query lasse ich mir die Dubletten auflisten:

select filename, count(filename)
from `Tab1`
group by filename
having count(filename) > 1

Nun möchte ich diese löschen, sodass jeweils nur ein Eintrag bestehen bleibt.

Hat jemand eine Idee wie ich das anstellen könnte??

Grüße, fdisk
Mitglied: Biber
27.11.2008 um 13:09 Uhr
Moin fdisk,

gehe ich Recht in der Annahme, dass wir gerade von einer Tamagochi-Enterprise-Datenbank sprechen in der aktuellen Version 8.5a?

Gibt es noch weitere Felder außer dem Filetnamen in Deiner Kochrezepte-Tabelle?
Wenn ja, ist es wurscht, welcher Satz gelöscht wird oder gibt es einen bestimmten, der erhaltenswerter ist als alle anderen Dubletten?

Menno, macht doch bitte nicht immer so eine Geheimniskrämerei aus Euren Anforderungen...
Wie soll denn jemand eine passende Antwort posten bei diesem windelweichen Geseiere?

Grüße
Biber
Bitte warten ..
Mitglied: fdisk
27.11.2008 um 14:12 Uhr
Moin Biber,

es handelt sich um eine mysql DB V5.0. NAtürlich gibt es noch weitere Felder - Artistname, ID3-Tag, coverlink etc....
Welcher der doppelten Einträge am Ende bestehen bleibt ist wurscht, da sie ja identisch sind.

Danke...
Bitte warten ..
Mitglied: Biber
27.11.2008 um 18:13 Uhr
Moin fdisk,

hmmm, mit wirklich vollständig redundanten Dubletten habe ich eigentlich nicht gerechnet.
Okay, dann muss natürlich jetzt von mir die Nachfrage kommen:
Hey, wozu willst Du die denn jetzt Unique/eindeutig machen, wenn die Tabelle doch offensichtlich keinen identifizierbaren Primary Key hat? Ohne Eindeutigkeit/ohne PK hast Du doch übermorgen wieder "doppelte" Datensätze??
Wozu dann überhaupt der Aufwand mit einer Datenbank....
Excel, Calc oder eine große Holzkiste wären für die Datenhaltung genauso sinnvoll und wesentlich fehlertoleranter.

Egal, die beiden einfachsten Varianten unter diesen merkwürkdigen Bedingungen:
a) mit gleicher TabStruktur
01.
INSERT INTO neuetabelle (filename, Artistname, ID3Tag, coverlink, etc)  
02.
SELECT DISTINCT filename, Artistname, ID3Tag, coverlink, etc  
03.
FROM tabelle;
b) weil Variante a) ja nach 2 tagen wieder Duplikate enthalten wird ohne PK:
--> ich würde ein AUTO_INCREMENT-Feld whateverID anfügen als PK.
Da dafür ein Zahlenwert automatisch vergeben wird, kannst Du das in eine neueTabelleMitPK reintrümmern.
01.
--anderen Code brauchen wir nicht, Statement bleibt wie oben)
P.S. Weil ich immer noch irgendwie am Kopfschütteln bin - das bring es alles nicht...
Du musst doch irgendwie verbal beschreiben können, was für Dich "gleiche" und was "unterschiedliche" Sätze sind, die Du in Deiner Tabelle sammelst....
Bist Du sicher, dass Du auf dem richtigen Weg bist?

Grüße
Biber
Bitte warten ..
Mitglied: fdisk
28.11.2008 um 15:40 Uhr
Hallo Biber,

erstmal danke für Deine Antwort.

Ich versuche mal die Problematik zu beschreiben.
Es gibt einen Online Radiosender der mehrere Channel betreibt. Bislang war es so, dass ein Track in unterschiedlichen Shows/Channeln lief - es gab also auch ein Feld names channel. bspweise lief track1.mp3 in allen vier channeln und war also 4x in der DAtenbank vorhanden, was natürlich blödsinn ist. Das Feld channel wurde nun auch rausgeschmissen, sodass nun 4x mal dieser Eintrack track1.mp3 vorhanden ist der bis auch das Feld channel (was es ja nun nicht mehr gibt) exakt identisch ist. in Zukunft wird natürlich darauf geachtet, dass es keine redundanten Einträge mehr geben wird.

Ich bin wirklich nicht fit in der Materie, meine Aufgabe ist nur mich um die Dubletten zu kümmern. Wenn ich das alles recht verstehe, dann sollte der filename in Zukunft der PK sein!?

Grüße, fdisk
Bitte warten ..
Mitglied: Biber
28.11.2008 um 16:18 Uhr
Moin fdisk,

Wenn ich das alles recht verstehe, dann sollte der filename in Zukunft der PK sein!?
Der PK sollte IMHO die Kombination aus denjenigen Attributen sein, die diesen Eintrag für Deine Betrachtung als "eindeutig" oder "doppelt" beschreiben.

Wenn also gewährleistet ist, dass Du anhand des "filename" unterscheiden kannst, dass es sich beim Track "Alles Gute zum Geburtstag" um die Version von Motörhead oder die Version von Xavier Naidoo handelt und ob es sich um die Liveversion des Wülferoder Bahnhofskonzerts oder die jugendfreie Studioversion handelt...
---> dann ist "filename" als natürlicher PK ausreichend.

Wenn es mehrere gleiche "filenames" geben könnte mit eigentlich unterschiedlichen Inhalten/Bedeutungen, dann wird es wahrscheinlich auf eine Kombination von "filename" und "filezize" oder sogar auf so etwas wie die Checksum des gezogenen mp3s herauslaufen.

Der "filename" wäre mir vor allem deshalb zu unsicher, weil Du darauf vertrauen müsstest, dass dieser immer gleich (z.B. nicht mal mit Umlauten und mal ohne) geschrieben sein wird.
Oder eben überhaupt immer gleich bzw. richtig. Da hätte ich meine Zweifel.

Denn soweit ich weiß, hat zwei Drittel der PISA-Generation massive Rechtschreibprobleme.
Und die übrigen 40% können nicht richtig rechnen.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
VB-Exel - Dubletten in einer Spalte samt Zeile löschen oder ausblenden?
gelöst Frage von YannoschMicrosoft Office4 Kommentare

Hallo liebe Community, entweder fehlt mir die Logik oder das Wissen oder beides. Ich hänge seid einer gefühlten Ewigkeit ...

Datenbanken
MS SQL Cache Datenbank löschen
gelöst Frage von GahmuretDatenbanken5 Kommentare

Hallo zusammen, wie lösche ich den Cache einer MS SQL Datenbank? Bevorzugt über ein SQL Statement. VG Gahmuret

Datenbanken
MS-SQL Tabellendaten kopieren und dann löschen
gelöst Frage von clSchakDatenbanken5 Kommentare

Hi ich habe von SQL-Scripten nur sehr wenig Kenntnisse, vielleicht kann mir hier einer sagen wie man das schnell ...

Datenbanken
MS SQL CE und aus einem bestimmten Feld alles bis auf 42 Buchstaben von rechts löschen
gelöst Frage von neueradmuserDatenbanken3 Kommentare

Hi, ich bin etwas verwirrt ich muss mich gerade mit einem SQL CE und CompactView rumschlagen. es gibt in ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 33 MinutenRouter & Routing

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 7 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 12 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...