#postgresql
Вопрос:
У меня есть вопрос относительно запроса данных из полей jsob.
У меня есть следующая таблица (упрощенная):
create table mytable
(
headers jsonb not null,
);
headers
в столбце хранятся заголовки HTTP, один из которых « PATH_INFO
» ( всегда присутствует в данных), и в нем в основном хранятся связанные пути запросов.
Пример "/api/users"
Каков наилучший способ получить все уникальные "PATH_INFO"
записи из headers
данных, имея в виду, что путь с /
в конце и без /
в конце следует рассматривать как одни и те же пути?
Пример — "/api/users" == "/api/users/"
НРАВИТСЯ и МНЕ НРАВИТСЯ, кажется, замедляется…
Спасибо.
Версия Postgres — 11
Ответ №1:
Я бы предложил «нормализовать» PATH_INFO (т. Е. Удалить косую черту, если таковая имеется), используя regexp_replace
вот так.
select distinct regexp_replace(headers->>'PATH_INFO', '/?
, '')
from mytable;