Select Anweisung verketten

Guten Tag,
Ich würde gerne Für eine “Suche” mehrere Tabellen Spalten verketten.(ich verwende PostgreSQL)
Folgendes Problem:
Das Ergebnis der Suche soll: Felix Mueller finden… Darum gebe ich in der “Suche”: “Felix Mueller” ein, aber er findet nur Felix(also spalte: “forename”) und kann die Spalte “surname” nicht finden, Weil die Verkettung fehlt.
Ich habe verschiedene möglichkeiten probiert, bin aber gescheitert.
Darum wollte ich Fragen, ob hier einer weiß, wie ich den “SELECT”-Befehl schreiben muss damit das funktioniert.
Versuche:
SELECT * FROM address WHERE (’{“felix”,“mueller”}’)::text[] @> ((’{"’||forename||’","’||surname||’"}’)::text[]);

SELECT * FROM address WHERE ‘felix mueller’::text = ANY((’{"’||forename||’","’||surname||’"}’)::text[]);

Ich hoffe ich habe mich einigermaßen deutlich ausgedrückt.(schreibe hier zum ersten mal)

Gruß



test=*# select * from name ;
 forename |  surname
----------+------------
 max      | mustermann
 lisa     | meier
 felix    | mueller
(3 rows)

test=*# select * from name where forename || ' ' || surname = 'felix mueller';
 forename | surname
----------+---------
 felix    | mueller
(1 row)

Danke erstmal für die Antwort, allerdings ist das nicht ganz das was ich wollte. Ich möchte bei der Suche auch zuerst den Nachnahmen eingeben können. Und vllt sogar noch andere Spalten mithinein nehmen… Das soll eine “Schnellsuche” werden. Ich habe also einen Array mit “Suchwörtern” und einen Array mit “Ergebnissen” und ich möchte in der “Suche” mehrere Angaben machen können damit ich es noch mehr eingrenzen kann.
Gruß

Dann wirst Du wohl das programmtechnisch abbilden müssen, was Du möchtest. Eine Pauschallösung dafür gibt es nicht.

Ich hab es jetzt geschafft :sunglasses:
So muss das aussehen:

SELECT * FROM address WHERE LOWER(company||forename||surname) LIKE ‘%felix%’ AND LOWER(company||forename||surname) LIKE ‘%hol%’;

Paß auf, wenn das NULL-Werte mal drin stehen. Hint: coalesce()