|
|
|
Поиск по полям char и varchar
|
|||
|---|---|---|---|
|
#18+
Привет всем! Помогите решить проблему. Есть таблица с очень большим (около 1 000 000 записей) кол-вом записей например create table "CHAR_DATA" (Name char(100),...) кодировка Win1251 наполнение русскими и английскими словами 1.Пользователям необходимо делать поиск по полю Name без учета регистра букв. Как создать такой индекс? 2.Очень часто пользователи вводят только начало слова, а select должен выдать все записи, в которых начало слова (первые введенные буквы) совпадают, а на остальные по фигу. Как создать такой select? Все должно работать очень быстро, т.е. по индексам. Полный перебор таблицы невозможен!!! Ответы можете присылать на e-mail: Fox_Nicol@list.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2004, 20:07 |
|
||
|
Поиск по полям char и varchar
|
|||
|---|---|---|---|
|
#18+
Это конечно зависит, откуда ты работаешь, в Delphi вроде бы так: select name from char_data where upper(name) containing "поисковое значение" А поисковое значение предварительно в клиенте переводишь в верхний регистр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 14:02 |
|
||
|
Поиск по полям char и varchar
|
|||
|---|---|---|---|
|
#18+
Создай еще одно поле, в котором данные будут содержаться в верхнем регистре (ну и триггер конечно) и проиндексируй. Только учти ограничение длины CHAR поля для индексов (80 символов кажется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 14:10 |
|
||
|
Поиск по полям char и varchar
|
|||
|---|---|---|---|
|
#18+
При таком запросе не используются индексы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 14:12 |
|
||
|
Поиск по полям char и varchar
|
|||
|---|---|---|---|
|
#18+
Если по первым символам поиск, то делай так: select name from char_data where upp_name starting upper("поисковое значение", COLLATE PXW_CYRL) Нужно использовать именно starting, а не containing. Конечно в поле upp_name должны содержаться данные в верхнем регистре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 14:28 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=479&tid=1578950]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 391ms |

| 0 / 0 |
