Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.015 c
14-1130970062
Kerk
2005-11-03 01:21
2005.11.27
Яндекс :)


6-1123746571
slotti
2005-08-11 11:49
2005.11.27
Скачивание файла с интернета


3-1129265104
iamkate
2005-10-14 08:45
2005.11.27
Проблемы с загрузкой данных из потока


1-1130933195
s_t_d
2005-11-02 15:06
2005.11.27
QReport в Delphi-7


14-1131347851
Rouse_
2005-11-07 10:17
2005.11.27
Кто меня искал?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский