Сопоставление шаблонов Postgres для замены слов с ошибками в столбце

#postgresql

Вопрос:

У меня есть столик в :

Имя переименованное имя
ДОРОГАЯ/А
ГРУЗОВИК HONDA
GMC

и у меня есть таблица правил переименования B:

правило правильное имя
ДОРОГАЯ/А Хонда
ГРУЗОВИК HONDA Хонда
^GMC. GMC

Мне нужно обновить таблицу A и установить столбец A. переименованное имя в B. правильное имя таблицы B, где A.name соответствовало любому из правил Б.

Когда я использую следующий запрос на обновление:

Update A set A.renamed_name = B.correct_name from B where name ~* any(array[B.rule]) дает мне результат

Имя переименованное имя
ДОРОГАЯ/А Хонда
ГРУЗОВИК HONDA Хонда
GMC нулевой

Последняя строка не обновляется, хотя моя проверка состояния включает в себя регулярное выражение exp. Пожалуйста, дайте мне знать, где я могу ошибаться или есть ли альтернативное решение.

Комментарии:

1. GMC не совпадает ^GMC. . Взгляните на регулярное выражение 101, я нахожу его действительно полезным.

2. Спасибо, это действительно не соответствует! Я снова редактирую свой вопрос. Что мне нужно, так это если A.name не соответствует ни одному из правил B., тогда A. переименованное имя = A.name в противном случае примените правило. Запрос на обновление работает для некоторых, но не для всех.