Das Handbuch ist sehr klar LIKE
und reguläre Ausdrücke sind zu verschiedenen Dingen.
LIKE
Entsprechend zum Handbuch:
Der LIKE-Ausdruck gibt wahr, wenn die Zeichenfolge mit dem mitgelieferten Muster übereinstimmt. (Wie erwartet, gibt das NICHT LIKE Ausdruck falsche wenn LIKE true zurück, und umgekehrt. Ein äquivalenter Ausdruck nicht (string LIKE-Muster).)
So, wie gibt wahr oder falsch, während eine Zeichenfolge passende .
%
ist vergleichbar mit *
in filesearch, es bedeutet, dass es Null oder irgendwelche nach oder vor übereinstimmen wird.
R%
R und ein beliebiges Zeichen nach.
%R
Jedes Zeichen vor dem und R
LIKE
es statt =
verwendet, und mehr Funktionalitäten sind im Handbuch erläutert.
-- Gets zero or any characters before one R
SELECT * FROM table WHERE column LIKE '%R'
-- Gets zero or any characters after one R
SELECT * FROM table WHERE column LIKE 'R%'
REGULAR EXPRESION
In postgreSQL für einen regulären Ausdruck, statt =
verwenden Sie verwenden ~
und das reguläre Ausdruck Format entsprechend die POSIX regular expressions Standards
Ein Beispiel ist:
-- Gets zero or any spaces numbers and text characters before one R
SELECT * FROM table WHERE column ~ '^[\s\w]*[R]{1}$'
-- Gets zero or any spaces numbers and text characters after one R
SELECT * FROM table WHERE column ~ '^[R]{1}[\s\w]*$'
In der Bedienungsanleitung Es gibt die Erklärung für alle verfügbaren Operatoren für reguläre Ausdrücke. Wie man reguläre Ausdrücke benutzt, ist eine andere Sache und es ist in den POSIX regular expressions Standards; Das hat nichts mit PostgreSQL zu tun.
Meinst du die pg docs auf pattern matching sind nicht ausreichend? Was wird dir nicht "gut erklärt"? – 1252748
Diese Dokumentation zeigt deutlich, dass 'LIKE' eine eigene Syntax hat, die sich von regex unterscheidet, die mit' SIMILAR TO' angewendet wird. Nirgends zeigt es an, dass Sie willkürlich mischen können und erwarten, dass es zu jeder Zeit weiß, welche Art von Mustererkennung Sie wünschen. –
Platzhalter sind keine Regexe. –