Gibt es eine umgekehrte In- Abfrage

Ich möchte eine Abfrage machen, die folgende Kreterien erfüllt:
In meiner Datenbank sind ein Primärschlüssel und Wortteile abgespeichert, wie z.B. 1;hans, 2;haus, 3;maus, 4;tor…
Nun möchte ich durch eine Abfrage herausfinden, bei welchem Primärschlüssel ein Wortteil aus meiner Abfrage vorkommt.
Also z.B. möchte ich als Ergebnis den Index 4 haben, wenn ich mit einer Abfrage …Garagentor eingebe oder 3 wenn ich Hochhaustür abfrage.
Kann mir da jemand helfen, oder habe ich SQL bisher noch nicht richtig verstanden.
Vielen Dank für die Hilfe von einem Neuling



test=# create table foobar(id int, wert text);
CREATE TABLE
Zeit: 202,341 ms
test=*# copy foobar from stdin;
Geben Sie die zu kopierenden Daten ein, gefolgt von einem Zeilenende.
Beenden Sie mit einem Backslash und einem Punkt alleine auf einer Zeile.
>> 1    hans
>> 2    maus
>> 3    haus
>> 4    tor
>> \.
Zeit: 31786,849 ms
test=*# commit;
COMMIT
Zeit: 0,591 ms
test=# select * from foobar ;
 id | wert
----+------
  1 | hans
  2 | maus
  3 | haus
  4 | tor
(4 Zeilen)

Zeit: 0,328 ms
test=*# select id from foobar where 'Hochhaustür' ~ wert;
 id
----
  3
(1 Zeile)

Andreas

Hallo Andeas,
danke für Deine Schnelle Antwort.
Ich habe da aber noch ein paar Fragen.
Bisher habe ich nur Abfragen mit:
SELECT… FROM… WHERE… = …;
gemacht.
Ist der “Trick” in Deiner Lösung das ~ was soetwas wie “ungefähr gleich” heissen soll?
Gibt es diesen Befehl auch unter MySQL, denn das weigert sich irgendwie diesen Befehl anzunehmen und ich kann auch noch keinen Hinweis finden was falsch ist.

Wäre Dir für Geduld & Hilfe dankbar.
Gruß Rüdi

So ungefähr. Ist ein Vergleichsoperator für reguläre Ausdrücke.

Gibt es diesen Befehl auch unter MySQL, denn das weigert sich irgendwie diesen Befehl anzunehmen und ich kann auch noch keinen Hinweis finden was falsch ist.
Wäre Dir für Geduld & Hilfe dankbar.
Gruß Rüdi

MySQL? Kenne ich nicht, nie gehört…

Andreas

Dieser Trickt ist ein regulärer Ausdruck.
Schnell wird das ganze aber trotzdem nicht werden, weil du nirgendwo einen Index ansetzen kannst.


Gibt es diesen Befehl auch unter MySQL, denn das weigert sich irgendwie diesen Befehl anzunehmen und ich kann auch noch keinen Hinweis finden was falsch ist.

Das hier ist ein Forum für und über PostgreSQL.