У меня есть таблица с полем Почтовый индекс Великобритании, и я собираюсь тестировать плохие форматы, используя только регулярные выражения, даже элементарные тесты не работают.
У меня есть значение CM8 2AX.
Если я бегу
выберите почтовый индекс из sor.party_person, где 'CM8 2AX' ~ '. * [0-9] [A-Z] [A-Z] $'
и post_code = 'CM8 2AX';
Я получаю
CM8 2AX
(1 строка)
Что, по-видимому, указывает на то, что мое очень простое регулярное выражение верно для значения.
Тем не менее, если я сейчас протестирую то же значение непосредственно из базы данных - похоже, тот же запрос в действительности, доказав с условием и, что это значение в поле:
выберите post_code из sor.party_person, где post_code ~ '. * [0-9] [A-Z] [A-Z] $' и post_code = 'CM8 2AX';
(0 строк)
не соответствует.
Чего мне не хватает?
Если я удаляю знак $ в конце, он работает, подразумевая, что БД видит что-то другое как символ конца поля и не распознает последний текстовый символ как последний символ, но для меня это не имеет смысла.