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

Вниз

ПРОБЛЕМА С 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
1-1129093521
Ветер в голове
2005-10-12 09:05
2005.11.06
Как заменить слово в Richedit


8-1118530099
VoloSoft
2005-06-12 02:48
2005.11.06
Надо перехватить PC-Speaker


14-1129553071
Игорь Шевченко
2005-10-17 16:44
2005.11.06
Почти по Екклезиасту...


10-1089952677
menart
2004-07-16 08:37
2005.11.06
Outlook & Delphi


14-1129639781
oldman
2005-10-18 16:49
2005.11.06
так вот ты какой, русский язык :)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский