Kann ich in Base mit Wildcard (*) suchen?

Hallo zusammen,

ich schaffe es nicht mit einer Abfrage in meiner Tabelle zu suchen, wenn ich nur einen Teil des Feldes kenne.
Z. B. möchte ich nach “a boy” suchen, weil ich alle Sätze mit “a Boy” haben möchte (I#m a boy, such a boy, usw.) lässt sich das machen? a boy hab ich schon vergebens versucht.
Das Gleiche wünsche ich mir mit Groß- und Kleinschreibung: “der Klepper” oder “der klepper”.
Bei der Definition der Abfrage Hab ich schon “ähnlich” eingetragen.
Danke für antworten.

Viele Grüße
Helge

Was, wie genau und ob überhaupt, geht, hängt in aller Regel von der verwendeten Datenbank ab. Daher die Bitte: Wenn Du eine Frage zum Datenbankmodul Base hast, gib bitte immer den Datenbanktyp an (embedded HSQLDB, Firebird oder die verwendete externe Datenbank). Ansonsten ist eigentlich fast nie eine Antwort möglich. Zum Anderen ist eine Angabe von Betriebssystem, LibreOffice Version fast immer hilfreich und ermöglicht eher eine schnelle Antwort, weil es solche Nachfragen, wie diese, vermeidet.

Im konkreten Fall wäre auch die SQL Abfrage, die Du erzeugt hast, exakt zu zeigen sinnvoll, weil es oft nur an einem passenden Quoting mit Hochkommas, Double Quotes oder Ähnlichem fehlt.

Beispiel HSQLDB: SELECT * FROM TextSearch WHERE TextS LIKE '*bo*'; (Tabellenname hier: TextSearch, Spaltenname TextS) fiunktioniert für mich, um Einträge die boy enthalten, zu finden.

… und wenn Du das auf Groß- und Kleinschreibung ausdehnen willst

SELECT * FROM "TextSearch" WHERE LOWER("TextS") LIKE '%bo%'

Beachte: In SQL wird das Prozentzeichen verwendet. Das Sternchen wird höchstens durch die GUI in der Prozentzeichen umgewandelt.

Wo Du bei der Definition der Abfrage “ähnlich” eingetragen hat entzieht such meinem Kenntnisstand. Da solltest Du schon genauer Deinen Ursprungspost erweitern. Denn die beiden Antworten darauf beziehen sich auf den SQL-Code von Abfragen.

Hallo Robert,
Danke für die Antwort.
Hier meine ergänzenden Angaben:
Datenbank ist Default HAQLDB, System Ubuntu 20.04, LibreOffice 7.1.1.2

Meine Abfrage habe ich in der Entwurfsansicht erstellt. Die sieht jetzt so aus und funktioniert:
SELECT “Titelliste”.“Titel” AS “Titel”, “Albumliste”.“Interpret” AS “Interpret”, “Albumliste”.“Albumname” AS “Albumname”, “Albumliste”.“Ablageort” AS “Ablageort” FROM “Albumliste”, “Titelliste” WHERE “Albumliste”.“Album_Schluessel” = “Titelliste”.“Album_Schluessel” AND “Titelliste”.“Titel” LIKE ‘% in the Morning%’ ORDER BY “Interpret” ASC, “Albumname” ASC, “Ablageort” ASC

Nur das mit dem LOWER bekomme ich nicht hin.

Viele Grüße
Helge

Also noch einmal als Antwort:

SELECT "Titelliste"."Titel" AS "Titel", "Albumliste"."Interpret" AS "Interpret", "Albumliste"."Albumname" AS "Albumname", "Albumliste"."Ablageort" AS "Ablageort" FROM "Albumliste", "Titelliste" WHERE "Albumliste"."Album_Schluessel" = "Titelliste"."Album_Schluessel" AND LOWER("Titelliste"."Titel") LIKE LOWER('% in the Morning%') ORDER BY "Interpret" ASC, "Albumname" ASC, "Ablageort" ASC

Ich habe jetzt das LOWER auch um den Eingabebereich für den Suchbegriff gemacht. Natürlich erhältst Du keinen Treffer, wenn Du im Suchbereich etwas mit Großbuchstaben stehen hast, aber den Feldinhalt vorher auf Kleinbuchstaben umstellst.

Vermutlich willst Du aber verschiedene Suchbegriffe eingeben, oder?

SELECT "Titelliste"."Titel" AS "Titel", "Albumliste"."Interpret" AS "Interpret", "Albumliste"."Albumname" AS "Albumname", "Albumliste"."Ablageort" AS "Ablageort" FROM "Albumliste", "Titelliste" WHERE "Albumliste"."Album_Schluessel" = "Titelliste"."Album_Schluessel" AND LOWER("Titelliste"."Titel") LIKE LOWER('%'||:Suche||'%') ORDER BY "Interpret" ASC, "Albumname" ASC, "Ablageort" ASC

Dann kannst Du allgemein etwas eingeben und danach suchen. Ob Du in Groß- oder Kleinschreibung eingibst ist egal.

Hallo Robert,

Vielen Dank. Das werde ich jetzt als Muster nehmen, um mich näher mit SQL zu befassen.

Viele Grüße und noch einen schönen Sonntag
Helge