![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ПРОБЛЕМА С 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]А В ЧЕМ ОНА У ТЕБЯ ВООБЩЕ?