powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Попасть в индекс при использовании replace
3 сообщений из 3, страница 1 из 1
Попасть в индекс при использовании replace
    #39741583
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую СУБД Postgresql
Есть индекс по полю Код и индекс по условию lower("Код")
В запросах
select *
from "Коды"
where "Код" like 'Оди%'
select *
from "Коды"
where lower("Код") like 'Оди%'
Попадаю в нужные индексы. Проблема возникает при желании удлаить пробелы:
select *
from "Коды"
where replace("Код", ' ','') like 'Оди%'
select *
from "Коды"
where replace(lower("Код"), ' ','') like 'Оди%'
Как правильно создать индекс, чтобы использовался в 2 проблемных запросах?
...
Рейтинг: 0 / 0
Попасть в индекс при использовании replace
    #39741584
polin11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую СУБД Postgresql
Есть индекс по полю Код и индекс по условию lower("Код")
В запросах
Код: sql
1.
2.
3.
4.
5.
6.
select *
from "Коды"
where "Код" like 'Оди%'
select *
from "Коды"
where lower("Код") like 'Оди%'


Попадаю в нужные индексы.
Проблема возникает при желании удалить пробелы:
Код: sql
1.
2.
3.
4.
5.
6.
select *
from "Коды"
where replace("Код", ' ','') like 'Оди%'
select *
from "Коды"
where replace(lower("Код"), ' ','') like 'Оди%'


Как правильно создать индекс, чтобы использовался в 2 проблемных запросах?
...
Рейтинг: 0 / 0
Попасть в индекс при использовании replace
    #39746961
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
polin11,

Как вариант использовать дополнительный функциональный индекс
Код: plsql
1.
CREATE INDEX idx_Code_MnemoCode ON test1 (replace(lower("Код"),' ', ''));


или
Код: plsql
1.
CREATE INDEX idx_Code_MnemoCode ON test1 (trim(lower("Код")));



применение почти любой функции к столбцу из индекса приводит к тому что индекс перестает использоваться
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Попасть в индекс при использовании replace
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]