Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ПРОБЛЕМА С LIKE "A%" И LIKE "A" [D5, Paradox]


AlexLines ©   (2005-10-12 06:12:00) 

Пишу запрос

Query1.SQL.Add('SELECT * From Main.db Where BodyMemo LIKE
"%А%" '); - работает

LIKE "А%" ИЛИ LIKE "А" НЕ РАБОТАЕТ

В ЧЕМ МОЖЕТ ЗАКЛЮЧАТЬСЯ ПРОБЛЕМА

СПАСИБО


Desdechado   (2005-10-12 10:33:00) [1]

чтобы не морочиться с LIKE, достаточно данные структурировать и раскидать по таблицам и полям, а не городить длинную бессымсленную строку, по которой пытаться искать со "смыслом"

почитай, как работает LIKE, если уж ничего менять не хочешь
там есть много нюансов


AlexLines   (2005-10-12 09:35:00) [2]

Почему так, думаю что необходимо поставить пробелы '% ИВАНОВ %'. В ЭТОМ СЛУЧАЕ БУДЕТ НАЙДЕНА ФАМИЛИЯ ИВАНОВ. А НЕ ИВАНОВА ЕСЛИ ИСКАТЬ БЕЗ ПРОБЕЛОВ И Т.Д.


Reindeer Moss Eater   (2005-10-12 09:29:00) [3]

where fieldname like '%точное слово в бд%'


AlexLines   (2005-10-12 09:26:00) [4]

Спасибо! Думаю, что разобрался, однако ссылка на доп. литературу не помешает!


AlexLines   (2005-10-12 09:18:00) [5]

А где можно почитать, как построить маску для поиска точного слова в БД?


sniknik   (2005-10-12 09:13:00) [6]

> AlexLines   (12.10.05 09:05) [7]
LIKE работает/сравнивает с маской для строки а не для слов в строке. (и это правильно. это хорошо. если подумать... ;о)


Reindeer Moss Eater   (2005-10-12 09:06:00) [7]

то like "abs%" находит только первое

Потому что только первое слово может начинаться на 'abs'
Все остальное как минимум начинается с пробела или разделителя.


AlexLines   (2005-10-12 09:05:00) [8]

Если точное сравнение попадает на второе слово в поле, то поиск уже не работает


sniknik   (2005-10-12 09:02:00) [9]

> Почему так происходит?
так было задумано.

маска из букв это точное сравнение, процент это любая строка, если точное сравнение стоит в начале маски то логично, что это сравнивается с началом строки.
а ты как думал должно сравнивать?


AlexLines   (2005-10-12 08:54:00) [10]

Я понял в чем проблема, однако это мне не понятно. В том случае, если like "%abs%" ищет cлова по всему полю мемо, то like "abs%" находит только первое слово поля мемо, а остальные совпадения игнорирует.

Почему так происходит?

Спасибо


AlexLines   (2005-10-12 08:33:00) [11]

1) все строчные
2) ни русская ни английская не проходит
3) пробела перед символом нет


Alexandr   (2005-10-12 08:31:00) [12]

1) регистр символов?
2) буква А - руская, а ищем аглицкую?
3) пробел перед словом?
ну и т.п.


AlexLines   (2005-10-12 08:28:00) [13]

Как это в чем - ищет любые сочетания букв like "%sol%", точное слово не ищет like "Absolut", и не ищет последовательность букв справа like "Abs%"


Alexandr   (2005-10-12 07:33:00) [14]

А В ЧЕМ ОНА У ТЕБЯ ВООБЩЕ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо