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

Вниз

ПРОБЛЕМА С LIKE "A%" И LIKE "A"   Найти похожие ветки 

 
AlexLines   (2005-10-12 06:12) [0]

Пишу запрос

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

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

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

СПАСИБО


 
Alexandr ©   (2005-10-12 07:33) [1]

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


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

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


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

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


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

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


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

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

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

Спасибо


 
sniknik ©   (2005-10-12 09:02) [6]

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

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


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

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


 
Reindeer Moss Eater ©   (2005-10-12 09:06) [8]

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

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


 
sniknik ©   (2005-10-12 09:13) [9]

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


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

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


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

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


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

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


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

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


 
Desdechado ©   (2005-10-12 10:33) [14]

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

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



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

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

Наверх




Память: 0.5 MB
Время: 0.052 c
1-1129371372
DelphiLexx
2005-10-15 14:16
2005.11.06
Как в TRadioGroup разместить символ δ - дельта?


4-1125689808
Grief
2005-09-02 23:36
2005.11.06
Scanline в WinAPI


11-1110375631
hotes
2005-03-09 16:40
2005.11.06
событие OnCreate формы


14-1129101703
dr Tr0jan
2005-10-12 11:21
2005.11.06
Помогите выбрать монитор LCD на 19"


1-1129217187
navinavi
2005-10-13 19:26
2005.11.06
Экспорт даннфх из Stringgrid в Excel