#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 в противном случае примените правило. Запрос на обновление работает для некоторых, но не для всех.