powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отбор записей из таблицы
7 сообщений из 7, страница 1 из 1
Отбор записей из таблицы
    #32109053
inna_p
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю в '97. В таблице есть числовое поле. Можно ли и как написать фильтр что бы выбрать все номера начинающиеся например на 54?
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109163
Marat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Преобразовать число в строку и взять первых 2 символа
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109306
1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИмяПоля Like '54*'
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109596
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если у тебя стоит такая задача, то у тебя, скорее всего, ситуация, когда все числа таблицы имеют одинаковое количество цифр. Например, при запоминании какого-нибудь кода, который не просто так цифрами заполнен, а со смыслом (ИНН и прочие коды). Скажем, в твоём случае, числа, начинающиеся с 54 - это определённая группа кодов, физически характеризующая какую-нибудь родственную группу предметов.


Так вот. Теперь объясним проще. В таком случае не надо использовать LIKE - этот оператор хорошо притормаживает. Используй целочисленное деление. Например, если у тебя все числа состоят из пяти цифр, достаточно сделать вот такую проверку:

WHERE Field \ 1000 = 54

Такой фильтр будет работать куда быстрее, чем LIKE, но, повторяю, только при условии, что количество цифр в числе всегда одно и то же.
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109599
MixaCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу Like - не согласен!!!

Если с двух сторон "*", тогда действительно труба... но Like, типа "54*" - должен работать достаточно быстро......
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109604
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И даже в этом случае медленнее на несколько порядков. Подчёркиваю - на НЕСКОЛЬКО порядков.

Ты просто представь себе алгоритм, по которому работает LIKE. И сравни с 1 тактом процессора на команду DIV.

P. S. Такты процессора я привёл только для сравнения, но сравнительный тест легко провести - создай таблицу с количеством строк не меньше ста тысяч, создай два запроса - с делением и с LIKE. Засеки время, повтори раз пятнадцать-двадцать, учти второстепенные факторы и так далее... :)

Не рискну прогнозировать, но десяток-другой секунд разницы должно быть.
...
Рейтинг: 0 / 0
Отбор записей из таблицы
    #32109817
RiliR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Suslik
Твои доводы быть может справедливы, если отсутствует индекс по этому полю.
В противном случае, LIKE будет работать быстрее, поскольку конструкция LIKE 'ABC*' использует индекс, а \ - нет (во всяком случае мне так кажется).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отбор записей из таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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