Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Индексы + Like / 9 сообщений из 9, страница 1 из 1
25.02.2004, 18:42
    #32421532
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
есть запрос
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
25.02.2004, 18:49
    #32421537
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
Перепиши на STARTING WITH вместо LIKE
...
Рейтинг: 0 / 0
25.02.2004, 18:54
    #32421547
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
та же история
...
Рейтинг: 0 / 0
25.02.2004, 18:59
    #32421556
Gold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
Наоборот попробуй:
select e_code from e164 where e_code starting with '380512';
...
Рейтинг: 0 / 0
25.02.2004, 19:04
    #32421565
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
2 Gold
и что он вернет? только один код

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

Как то мы с тобой по разному мыслим...
...
Рейтинг: 0 / 0
25.02.2004, 19:19
    #32421592
vitvsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
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
26.02.2004, 09:36
    #32421878
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индексы + Like
авторесть запрос
select e_code from e164 where '380512222222' like e_code || '%';
поле e_code в таблице индексировано, "анализ производительности" в EMS & IbExpert показывает, что в запросе они участия не принимают

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

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
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Индексы + Like / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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