2017-08-26 2 views
1

Ich habe eine Tabelle mit Werten wie:PostgreSQL finden, wo String exakte Zeichenfolge enthält

  • "Head of HR"
  • "Unterstützung des Managements"

Wenn ich die Zeichenfolge wie "haben hr "Ich würde gerne die Zeile" Head of HR "finden. Ein einfaches "LIKE% hr%" wäre nicht präzise genug, weil andere Zeilen mit einer Zeichenfolge, die "hr" enthält, ebenfalls gefunden würden. Ich denke, ich brauche eine Art Regex.

Vielleicht könnte jemand mir einen Hinweis geben, wie man es schreibt.

Dank Alex

+0

Verwenden 'WHERE col ~‚\ YHR \ y'' –

Antwort

1

Verwenden

WHERE col ~ '\yHR\y' 

Die \yHR\y regex ein HR als ganzes Wort übereinstimmen (die \y ist eine Wortgrenze, passt es den Anfang oder das Ende eines Wortes).

Rextester demo:

CREATE TABLE table1 
    (s character varying) 
; 

INSERT INTO table1 
    (s) 
VALUES 
    ('Head of HR'), 
    ('Assistance of management'), 
    ('CHROME') 
; 

select * from table1 where s ~ '\yHR\y'; 

Ergebnis:

enter image description here

+1

Großen Dank. Das funktioniert für mich. –

+0

@AlexBug: Froh, dass es für Sie gearbeitet hat. Bitte bedenken Sie auch, dass eine Antwort hilfreich ist, wenn meine Antwort hilfreich für Sie war (siehe [Wie kann ich auf Stack Overflow upvoten?] (Http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow)) . –

Verwandte Themen