Главная страница
    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.039 c
2-1129043223
Vale
2005-10-11 19:07
2005.11.06
Запуск программы под другим логином


3-1127814213
Бизон
2005-09-27 13:43
2005.11.06
Структурирование в XML файлах


14-1129021214
ANB
2005-10-11 13:00
2005.11.06
Чем отличается попса от рока ?


10-1106802962
Григорьев Антон
2005-01-27 08:16
2005.11.06
Выделение и освобождение памяти для out-параметров COM-серверов


2-1129451040
_WWW
2005-10-16 12:24
2005.11.06
WebNavigator





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