3 Filter in Datenbank einbauen

Heinzi79

Aktiver Benutzer
Beiträge
37
Hallo ich möchte in meiner Daten 3 Filter einbauen.

Aber irgendwas in meinem Code stimmt nicht.

SELECT "ID", "Datum", "Interpret", "Titel", "ersetzen", "Album", "Genre", "Jahr", "BPM", "Bitrate", "Sprache", "Interpret" || ' - ' || "Titel" FROM "Musikdatenbank" WHERE LOWER ( "Interpret" ) LIKE LOWER ( '%' || COALESCE ( ( SELECT "Interpret" FROM "tbl_MusicFilter" ), '' ) || '%' ) AND LOWER ( "Titel" ) LIKE LOWER ( '%' || COALESCE ( ( SELECT "Titel" FROM "tbl_MusicFilter" ), '' ) || '%' ) AND LOWER ( "ersetzen" ) LIKE LOWER ( '%' || COALESCE ( ( SELECT "ersetzen" FROM "tbl_MusicFilter" ), '' ) || '%' )

Würde mich sehr freuen wenn mir jemand helfen kann.
 
Werbung:
Deine Frage ist nicht wirklich klar. Dein Code ergibt keinen Sinn. Eine Fehlermeldung gibt es nicht.

Deine WHERE-Bedingung ist Mist.
WHERE LOWER ( "Interpret" ) LIKE LOWER ( '%' || COALESCE ( ( SELECT "Interpret" FROM "tbl_MusicFilter" ), '' ) || '%' )
Wenn tbl_MusicFilter mehr als einen Datensatz enthält, liefert SELECT auch mehr als einen Wert womit = oder LIKE nicht klar kommen, da gibt es nur IN als Operator. Da IN und LIKE nicht zusammen funktionieren wirst du wohl einen Join machen müssen. Oder ein LIKE im Subselect mit EXISTS davor. Das gleiche gilt für die zweite WHERE Bedingung.

Der Sinn von LOWER erschließt sich mir nicht. LIKE ist normalerweise case insensitive, aber wer weiß, was für eine COLLATION die Spalten haben...
 
Werbung:
Mein Tipp:
Where Bedingung so lange verkleinern und vereinfachen, bis sie funktionieren, dann erweitern, bis alle Filter eingebaut sind.

Für eine genauere Hilfestellung müsstest Du wohl ein paar gute Erklärungen zu Deinem Eröffnungspost liefern.
Nimm nur 1 Bedingung und schreibe, was Du erwartest und was statt dessen geschieht.
 


Schreibe deine Antwort....
Zurück
Oben