|
|
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
в поле типа text(на форме) вводятся различные слова через пробелы... нужно сделать выборку записей, в которых все введенные слова есть в memo-поле... слова необязательно должны идти друг за другом... как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 18:48 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
Про функцию LIKE() почитай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 20:11 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
думаю like тут неподойдет т.к. должно быть примерно так: select ... where <первое слово> $ <поле memo> and <второе слово> $ <поле memo> and ... однако кол-во слов неограничено... если можно сделать с помощью like, то обьясните как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 20:36 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
Тогда про макроподстановку прочитай и формируй команду динамически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 21:16 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
DagТогда про макроподстановку прочитай и формируй команду динамически. да нет... у меня и так макроподстановка... мне нужен сам алгоритм поиска... т.е. разбиение строки на слова(мб можно и без разбиения), и выборку записей, memo которых содержит все эти слова... мб сформировать массив и использовать do each? только вот как это связвть с самим запросом... буду думать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2007, 21:37 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
никто не отвечает... видимо придется пояснить все вышесказанное на примере... thisform.list1.RowSource='SELECT m ... WHERE "'+ALLTRIM(thisform.text1.Value)+'" $ m' вот так у меня сейчас... но нужно чтобы порядок слов в text1 неимел значения и любое из слов могло бы находится в любом месте memo поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 02:07 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
KostyaMAXникто не отвечает... Думашь много народу в форуме в воскресенье вечером? KostyaMAX... но нужно чтобы порядок слов в text1 неимел значения и любое из слов могло бы находится в любом месте memo поля Тогда ты решение уже сам написал: KostyaMAXselect ... where <первое слово> $ <поле memo> and <второе слово> $ <поле memo> and ... однако кол-во слов неограничено... если можно сделать с помощью like, то обьясните как... Код условия надо сформировать в строку и использовать макроподстановку: Код: plaintext 1. С помошью LIKE() возможно только если порядок слов в мемо совпадает с порядком в строке: Код: plaintext KostyaMAX... у меня и так макроподстановка... мне нужен сам алгоритм поиска... По скорости работы твоя макроподстановка и LIKE() примерно одинаковы. Любой способ разбора мемо перед выполнением запроса будет еще медленее. Если надо алгоритм для ускорения выборки, то необходима какая-то предобработка при сохранении мемо-поля, а это зависит от того как часто оно меняется, как наполняется. Например можно создать таблицу со словами и таблицу со ссылками на мемо где они встречаются. В таблице уже можно будет индексный поиск использовать. Затем делать выборку по наиболее редкому слову и т.д. Тут все зависит от нюансов конкретно твоей задачи. Универсального алгоритма нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 08:23 |
|
||
|
Поиск в memo
|
|||
|---|---|---|---|
|
#18+
Если оформить через SCAN ... ENDSCAN Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2007, 10:22 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=174&tid=1588354]: |
0ms |
get settings: |
9ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 288ms |

| 0 / 0 |
