Ich versuche, einen RegexMuster zu verwenden, um mit PostgreSQL passend 9.4:PostgreSQL 9.4 UPDATE ... FROM Fehler mit REGEX Operatoren
vorherigen Antworten, aber nichts ausgesehen hat durch ich Matches dieses spezielle Problem
finden select 'apple' ~ '^.*pp.*$'
liefert 't' wie erwartet
update <table> set column = 'value' where name ~* '^.*pp.*$'
funktioniert auch.
Aber:
update <table> set column = 'value' from <other_table> where name ~* '^.*pp.*$'
erzeugt einen Fehler:
Das spezifische Beispiel:
update
members set
pattern = a.pattern
from
services a
where
organisation ~* '^.*' || replace(a.pattern, ' ', '.*') || '.*$';
ERROR: Argument von WHERE Typ boolean sein muss, nicht Text LINE Typ 1: .. .attern = a.pattern von services a wo organisation ...
Es scheint s Die Where-Klausel nach der FROM-Tabelle im Update erkennt oder verarbeitet den Regex-Operator nicht korrekt. Oder ebenso wahrscheinlich, bin ich Missverständnis der UPDATE ... FROM Syntax
Vielen Dank, wenn Sie
Ausgezeichnet. Danke vielmals. Ich hatte vorher schon Klammern versucht, aber um die ganze Where-Klausel dh wo (Organisation ...) –