Ich bräuchte mal Hilfe bzw. ein paar Tipps. Und zwar habe ich eine Datenbank zur Verwaltung von Büchern bestehend aus 6 Tabelen:
Buch(id, titel, standort, verlag, kategorie)
Autor(id, vorname, nachname)
Buchautor(buchid, autorid)
Kategorie(id, bezeichnung)
...
Eine normale bzw einfache Suche funktioniert mittels LIKE problemlos.
Code: Alles auswählen
sql = """SELECT DISTINCT buch.id, buch.titel, autor.vorname, autor.nachname, verlag.bezeichnung, kategorie.bezeichnung
FROM buch
LEFT OUTER JOIN buchautor ON buchautor.buchid = buch.id
LEFT OUTER JOIN kategorie ON buch.kategorieid = kategorie.id
LEFT OUTER JOIN autor ON autor.id = buchautor.autorid
LEFT OUTER JOIN verlag ON buch.verlagid = verlag.id
WHERE buch.titel LIKE ? OR autor.nachname LIKE ? OR kategorie.bezeichnung LIKE ? OR verlag.bezeichnung LIKE ? OR buch.id LIKE ? OR buch.standort LIKE ?"""
Meine Frage ist nun:
wie kann ich zwei oder mehr Suchbegriffe eingeben zB Beton+Holz? Also, wenn ich ins Eingabefeld folgendes Eintrage:
begriff1+begriff2, dann sollen mir alle Tupels die begriff1 beinhalten als auch alle Tupels die begriff2 beinhalten ausgegeben werden.
Das "+" muss ich irgendwie definieren, nur hänge ich da momentan fest.
mfg