
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
28.03.2004, 20:07
|
|||
|---|---|---|---|
|
|||
Поиск по полям 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2004, 14:02
|
|||
|---|---|---|---|
|
|||
Поиск по полям char и varchar |
|||
|
#18+
Это конечно зависит, откуда ты работаешь, в Delphi вроде бы так: select name from char_data where upper(name) containing "поисковое значение" А поисковое значение предварительно в клиенте переводишь в верхний регистр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2004, 14:10
|
|||
|---|---|---|---|
|
|||
Поиск по полям char и varchar |
|||
|
#18+
Создай еще одно поле, в котором данные будут содержаться в верхнем регистре (ну и триггер конечно) и проиндексируй. Только учти ограничение длины CHAR поля для индексов (80 символов кажется) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2004, 14:12
|
|||
|---|---|---|---|
Поиск по полям char и varchar |
|||
|
#18+
При таком запросе не используются индексы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
29.03.2004, 14:28
|
|||
|---|---|---|---|
|
|||
Поиск по полям char и varchar |
|||
|
#18+
Если по первым символам поиск, то делай так: select name from char_data where upp_name starting upper("поисковое значение", COLLATE PXW_CYRL) Нужно использовать именно starting, а не containing. Конечно в поле upp_name должны содержаться данные в верхнем регистре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&tablet=1&tid=1578950]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 455ms |

| 0 / 0 |
