Подтвердить что ты не робот

Как создать индекс в PostgreSQL только на нижнем регистре?

Как мне настроить индекс, основанный только на нижнем регистре?

Несмотря на то, что фактическое поле содержит буквы верхнего и нижнего регистра.

Кроме того, могу ли я запустить запрос и вернуть только значение индекса нижнего регистра?

4b9b3361

Ответ 1

Вы можете создать индекс и преобразовать поле в верхний или нижний регистр. Затем, когда вы выполняете свои запросы, вы можете сделать то же самое преобразование, и оно поступит правильно.

Итак:

CREATE UNIQUE INDEX lower_case_username ON users ((lower(username)));

Затем запрос для одного и того же:

SELECT username FROM users WHERE lower(username) = 'bob';

Ответ 2

В соответствии с документами вы можете сделать это:

CREATE UNIQUE INDEX lower_title_idx ON films ((lower(title)));

Ответ 3

CREATE UNIQUE INDEX my_index_name ON my_table (LOWER(my_field));