powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по полям char и varchar
5 сообщений из 5, страница 1 из 1
Поиск по полям char и varchar
    #32459911
Привет всем!
Помогите решить проблему.
Есть таблица с очень большим (около 1 000 000 записей) кол-вом записей
например create table "CHAR_DATA" (Name char(100),...) кодировка Win1251
наполнение русскими и английскими словами
1.Пользователям необходимо делать поиск по полю Name без учета регистра букв. Как создать такой индекс?
2.Очень часто пользователи вводят только начало слова, а select должен выдать все записи, в которых начало слова (первые введенные буквы) совпадают, а на остальные по фигу. Как создать такой select?

Все должно работать очень быстро, т.е. по индексам. Полный перебор таблицы невозможен!!!

Ответы можете присылать на e-mail: Fox_Nicol@list.ru
...
Рейтинг: 0 / 0
Поиск по полям char и varchar
    #32460663
valich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это конечно зависит, откуда ты работаешь, в Delphi вроде бы так:

select name
from char_data
where upper(name) containing "поисковое значение"

А поисковое значение предварительно в клиенте переводишь в верхний регистр...
...
Рейтинг: 0 / 0
Поиск по полям char и varchar
    #32460683
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай еще одно поле, в котором данные будут содержаться в верхнем регистре (ну и триггер конечно) и проиндексируй. Только учти ограничение длины CHAR поля для индексов (80 символов кажется)
...
Рейтинг: 0 / 0
Поиск по полям char и varchar
    #32460686
vovan1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При таком запросе не используются индексы!
...
Рейтинг: 0 / 0
Поиск по полям char и varchar
    #32460731
FreemanZAV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если по первым символам поиск, то делай так:

select name
from char_data
where upp_name starting upper("поисковое значение", COLLATE
PXW_CYRL)

Нужно использовать именно starting, а не containing. Конечно в поле upp_name должны содержаться данные в верхнем регистре.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Поиск по полям char и varchar
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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