powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Индексы + Like
9 сообщений из 9, страница 1 из 1
Индексы + Like
    #32421532
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть запрос
select e_code from e164 where '380512222222' like e_code '%';
поле e_code в таблице индексировано, "анализ производительности" в EMS & IbExpert показывает, что в запросе они участия не принимают

при запросе
select e_code from e164 where '380512' = e_code;
все нормально

в чем фишка?
...
Рейтинг: 0 / 0
Индексы + Like
    #32421537
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перепиши на STARTING WITH вместо LIKE
...
Рейтинг: 0 / 0
Индексы + Like
    #32421547
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
та же история
...
Рейтинг: 0 / 0
Индексы + Like
    #32421556
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наоборот попробуй:
select e_code from e164 where e_code starting with '380512';
...
Рейтинг: 0 / 0
Индексы + Like
    #32421565
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Gold
и что он вернет? только один код

вся задача в том, чтобы выбрались в запросике
select e_code from e164 where '380512222222' like e_code || '%';
все, что подходит
3
380
380512
а e_code короче '380512222222'
...
Рейтинг: 0 / 0
Индексы + Like
    #32421583
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тю, так а чем не подходит тогда
select e_code from e164 where e_code starting with '3'

Как то мы с тобой по разному мыслим...
...
Рейтинг: 0 / 0
Индексы + Like
    #32421592
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Gold

а разница та, что
select e_code from e164 where '380512222222' like e_code || '%';
вернет
3
380
380512
а
select e_code from e164 where e_code starting with '3'
3
31
32
33
......
380511
380512
...
Рейтинг: 0 / 0
Индексы + Like
    #32421878
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторесть запрос
select e_code from e164 where '380512222222' like e_code || '%';
поле e_code в таблице индексировано, "анализ производительности" в EMS & IbExpert показывает, что в запросе они участия не принимают

<value> LIKE <field> не может быть вычислено с использованием индекса. Принципиально. В отличии от <field> LIKE <value>.
...
Рейтинг: 0 / 0
Индексы + Like
    #32422237
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-ли форум глючил вчера - не смог тебе ответ написать. Я б те посоветовал сделать так:

select e_code from e164 where e_code starting with '3' and '380512222222' like e_code '%';

Ещё можешь попробовать поэкспериментировать и сделать так (это только теория):

select e_code from e164 where e_code between '3' and '380512222222' and '380512222222' like e_code '%';
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Индексы + Like
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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