Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Поиск в БД   Найти похожие ветки 

 
AlexLines   (2005-10-15 13:39) [0]

С помощью оператора Like, к примеру, можно найти точное слово или фразу, не точное слово - Like "%Иван%" (найдет Иванов, Иванова, Иванову и т.д., а каким образом можно найти фразы - Иванов Григорий Александрович, Иванову Григорию Александровичу, Ивановым Григорием Александровичем, ведь если написать
(Like "%Иван%") and (Like "%Григори%") and (Like "%Александрович%") эти слова в тексте поля мемо не будут найдены подряд, а в разных частях текста.

Например в начале текста "Иванов Лев Львович" будет найден Иванов
В середине текста "Василейского Геннадия Александровича" - Александрович
и т.д.

Спасибо


 
Anatoly Podgoretsky ©   (2005-10-15 13:44) [1]

Ну так это не секрет даже, а просто основы.


 
AlexLines   (2005-10-15 13:52) [2]

Да Анатолий. Я только изучаю SQL

Если можно хотя бы ссылку на статью и т.п.


 
Anatoly Podgoretsky ©   (2005-10-15 13:54) [3]

У тебя в комплекте есть справка по синтаксису LocalSQL


 
AlexLines   (2005-10-15 13:56) [4]

Сейчас поищу


 
AlexLines   (2005-10-15 15:45) [5]

Пока не справляюсь с решением подобной задачи даже при помощи Help LocalSQL

Может быть кто-нибудь подскажет основные пути решения

Заранее благодарю


 
msguns ©   (2005-10-16 09:48) [6]

LIKE "%Иван%Григори%Александрович%"


 
Павел ©   (2005-10-16 10:05) [7]

не, это ему тоже не подойдет.

AlexLines:
надо использовать в выражении like символ _
например
like "Иванов_ Григори_ Александрович" найдет:
Иванова Григория Александровича
Иванову Григорию Александровичу
Ивановы Григории Александровичи


 
msguns ©   (2005-10-16 10:13) [8]

>Павел ©   (16.10.05 10:05) [7]

не найдет ;)


 
Павел ©   (2005-10-16 11:06) [9]

почему? :)


 
AlexLines   (2005-10-16 12:44) [10]


> LIKE "%Иван%Григори%Александрович%"

Проблема заключается в том чтобы оператор Like нашел Не все включение слова в поле, а именно Иванов Григорий Александрович (или чу). В том варианте который предлагаете вы  будет найдены записи такого вида: Иванов хороший работник, Григорий Александрович его поддерживает


 
Anatoly Podgoretsky ©   (2005-10-16 12:53) [11]

Используй обработчик OnFilterRecord


 
msguns ©   (2005-10-16 12:53) [12]

>Павел ©   (16.10.05 11:06) [9]
>почему? :)

Потому что пишем, не проверяя, фигню.

>AlexLines   (16.10.05 12:44) [10]

Дорогой, может неплохо бы уточнить  две вещи:

1. Что за информация содержится в поле, где ищем: биография огурцов, милицейские протоколы о задержании кучи Ивановых и Петровых и т.д.
2. Что все-таки ищем: любое упоминание о Иванове или конкретно ФИО как оно записано в паспорте ?

Где гарантия, что не напишут один раз  "Иванову Григорию Александровичу", в другой раз "Григорию Александровичу Иванову", а в третий вообще "Иванову Г.А."
И что мы найдем-то ?


 
Павел ©   (2005-10-16 13:01) [13]

AlexLines:
я же тебе написал используй символ "_" вот и все (работает, только что сам проверил) или напиши UDF


 
msguns ©   (2005-10-16 13:11) [14]

>Павел ©   (16.10.05 13:01) [13]
>я же тебе написал используй символ "_" вот и все (работает, только что сам проверил) или напиши UDF

Беда не в том, что глупости говорим, а в том, что на них настаиваем.
В школу, в 3-й класс ! Вроде там падежи изучают ? Кроме того, как твой "универсальный" запрос разберется с грамматическими ошибками и "очепятками", коих, как известно, полно в любых достаточно обширных текстах. И как он справится с двумя пробелами или неполным указанием имени или отчества ? Или указанными не в том порядке ?

Я постю не потому, что охота поспорить с такими "советчиками", а потому, что имею опыт подобных проблем, когда надо выбирать упоминания об объекте, а не сами объекты, и могу с уверенностью сказать, что удовлетворительно проблема не решается одним запросом или UDF.
Решение есть, но оно вовсе не тривиальное.


 
AlexLines   (2005-10-16 13:23) [15]

> Что за информация содержится в поле, где ищем: биография
> огурцов, милицейские протоколы о задержании кучи Ивановых
> и Петровых и т.д.

Вообще задача состоит в том, чтобы если пользователь набрал в строке поиска Иван* Александр* Григорьев*, то получил бы записи Иванов Александр Григорьевич, Иванову Александру Григорьевичу и т.д., однако не Иванов хороший человек, Александр Григорьевич тоже


 
Anatoly Podgoretsky ©   (2005-10-16 13:25) [16]

Не много ли хочешь от Парадокса? Решай это на клиенте.


 
msguns ©   (2005-10-16 13:33) [17]

>AlexLines   (16.10.05 13:23) [15]

На вопрос о сути хранимой в поле поиска информации отвечать не будем принципиально ?


 
AlexLines   (2005-10-16 13:42) [18]


> На вопрос о сути хранимой в поле поиска информации отвечать
> не будем принципиально ?


В поле Memo размещены статьи из журнала. По ним и производится поиск


 
AlexLines   (2005-10-16 13:49) [19]


> Не много ли хочешь от Парадокса?

Почему много?



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.04 c
2-1131647329
dj0n
2005-11-10 21:28
2005.11.27
Отчеты для БД.


1-1130852462
Tonich
2005-11-01 16:41
2005.11.27
TChart


4-1127137615
Ландграф Павел
2005-09-19 17:46
2005.11.27
Как отловить смерть потока


9-1121156030
n0p
2005-07-12 12:13
2005.11.27
ArcTan


2-1131802956
zxc
2005-11-12 16:42
2005.11.27
Народ подскажите неопытному