Zum Inhalt springen

INSERT mit Bedingungen


bernau

Empfohlene Beiträge

Hallo Leute, über die Suchfunktion hab ich leider nichts passendes gefunden, also schlagt mich bitte nicht falls es doch schon mal gefragt wurde ;-)

Ich möchte in einer Tabelle Artist und Title zu MP3s speichern.

z.B. Queen, Flash

Disturbed, Stupify

usw.

Das speichern selbst der Daten ist kein Problem. Nun soll man aber über eine Suchfunktion auf einer Webseite nach entsprechenden Liedern suchen können.

Um Tippfehler ausschließen zu können, verwende ich momentan folgenden Code um die passenden Lieder zu finden:


SELECT * FROM `lieder` 

WHERE SOUNDEX(artist)=SOUNDEX('$artist') 

AND SOUNDEX(title)= SOUNDEX('$title')

Das funktioniert auch soweit ganz gut und ignoriert einige Tippfehler. Nun ist die Frage, kann ich in einem INSERT-Statement eine Bedingung einbauen? So dass, wenn ein neues Lied für die Datenbank vorgeschlagen wird, ein ähnliches aber schon existiert, der Eintrag nicht erstellt wird? Die ersten Versuche in der Richtung sahen so aus:

SELECT CASE (SELECT * FROM `lieder` 

WHERE SOUNDEX(artist)=SOUNDEX('$artist') 

AND SOUNDEX(title)= SOUNDEX('$title')) 

WHEN 0 THEN

(INSERT INTO lieder (artitst,title) VALUES ('$artist','$title'))

ELSE END;

Bin ich da evtl schon auf dem richtigen Weg? Ich würde die Abfrage halt einfach gerne in ein Statement packen. Ich freue mich über jede Antwort und Danke schon mal ;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

So dass, wenn ein neues Lied für die Datenbank vorgeschlagen wird, ein ähnliches aber schon existiert, der Eintrag nicht erstellt wird?

Nein das geht nicht. Allerdings ist deine Datenbank nicht normalisiert, denn der Künstlername sollte in einer eigenen Tabelle abgelegt werden. Dann kannst Du z.B. auch eine Auswahlliste anbieten aus der der User auswählen kann. Aber solange Du ein Freitextfeld anbietest, wirst Du immer damit leben müssen, dass ein falsch geschriebener Name in die DB kommt.

Hier noch was zum Thema Normalisierung. Dort ist es passenderweise auch schon am Beispiel einer Musikdatenbank erklärt.

Dim

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die schnellen Antworten. Zum Thema Normalisierung hab ich mir schon einiges in der Uni anhören dürfen/müssen. Wollte es nur über den Weg erst mal versuchen. Aufsplitten der Tabelle und dann mit entsprechenden Primär-/Sekundärschlüsseln versehen ist nicht das Problem.

War aber so wie es gerade aussieht ein Denkfehler meinerseits :upps Danke nochmal. Hat sich damit erledigt :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...