powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще раз Like
22 сообщений из 22, страница 1 из 1
Еще раз Like
    #32439955
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я уже раз описывал проблемку, но разумного решения мне ее так и не предложили:(

имеется запрос
select e_code from e164 where '380512111' like e_code || '%';
либо (разницы в скорости никакой)
select e_code from e164 where '380512111' starting with e_code;

при его выполнении индексы не используются. что можно сделать в этой ситуации?
...
Рейтинг: 0 / 0
Еще раз Like
    #32439984
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может имелось в виду
select e_code from e164 where e_code like '380512111%';
и
select e_code from e164 where e_code starting with '380512111';
???

...
Рейтинг: 0 / 0
Еще раз Like
    #32439988
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Johnmen

если бы это имелось в виду, то так и писалось бы
просто
select e_code from e164 where e_code starting with '380512111';
вернет
NULL
а
select e_code from e164 where '380512111' starting with e_code;
3
380
...
...
Рейтинг: 0 / 0
Еще раз Like
    #32440039
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторselect e_code from e164 where e_code starting with '380512111';
вернет
NULL
а
select e_code from e164 where '380512111' starting with e_code;
3
380
...

Ух-ты !!! А может все как раз наоборот, а ?

Первый раз вижу конструкцию :
Код: plaintext
SELECT ... WHERE '380512111' STARTING WITH e_code


Best regards,
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440060
Andrey_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vitvshпри его выполнении индексы не используются. что можно сделать в этой ситуации?
1. Не использовать такой запрос.
2. Смирится.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440265
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dnico
не наоборот. посмотри

2 all
а все-таки, как запрос лучше перестроить?
...
Рейтинг: 0 / 0
Еще раз Like
    #32440294
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А первого символа константы не достаточно? (просто интересуюсь)
Или нескольких?
  Типа так:
Код: plaintext
1.
2.
3.
4.
select e_code from e164 where e_code starting with '3'; 
Результат:
    3  
    380  
   ...
...
Рейтинг: 0 / 0
Еще раз Like
    #32440299
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторпри его выполнении индексы не используются

И не должны. И никогда не будут.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440310
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select ID from goods where '70' STARTING WITH ID

Всегда NULL, хотя ID
700
701
702
703
704
705

Что-то я не пойму ?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440315
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поменяй местами перед с задом
...
Рейтинг: 0 / 0
Еще раз Like
    #32440319
нуар
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наоборот... ID starting with '70' а то, что написано выбирает только ID 7 и 70
...
Рейтинг: 0 / 0
Еще раз Like
    #32440322
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ведь читаю у автора ...\r
/topic/80031#575321\r
Вот так и делаю ....\r
Или у меня глюки на экране ?\r
\r
Best regards,\r
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440326
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dnico
у тебя значение ID по длине больше '70'
а в
select e_code from e164 where '380512111' starting with e_code;
e_code заведомо меньше '380512111'
...
Рейтинг: 0 / 0
Еще раз Like
    #32440329
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Брал и 7000000000000 - не получается ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440333
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тем не менее он работает
...
Рейтинг: 0 / 0
Еще раз Like
    #32440337
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А версия какая сервера?

Best regards,
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440339
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
Еще раз Like
    #32440360
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dnico
Yafiil

2 Gold
пробовал, но при том, что в таблице 4122 записей
select e_code from e164 where e_code starting with '3' and '380512222222' like e_code '%';
производит 3500 IR, то есть выигрыша почти нет
у этого IR - 500, но выполняется дольше
select e_code from e164 where e_code between '3' and '380512222222' and '380512222222' like e_code '%';
...
Рейтинг: 0 / 0
Еще раз Like
    #32440368
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин !!! У меня не работает. FB стоит.


Best regards,
Dnico.
...
Рейтинг: 0 / 0
Еще раз Like
    #32440370
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Gold
насчет времени я ошибся, но только если задать например вот так, то получим тоже самое, что и было по IR
select e_code from e164 where e_code between '3' and '3999999999' and '3999999999' like e_code '%';
...
Рейтинг: 0 / 0
Еще раз Like
    #32440376
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Dnico
select ID from goods where '70000' STARTING WITH ID
7
70
700
.....
...
Рейтинг: 0 / 0
Еще раз Like
    #32440392
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да !!! Понял ... это наследие 1С (все ID документов в виде ' XXX ').
Я левую часть отсекаю, а правые пробелы остаются.
Код: plaintext
select ID from goods where '700123456' starting with rtrim(ID)


Best regards,
Dnico.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Еще раз Like
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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